0
我有一個selectOneMenu管理兩個對象A和B之間的關係。 其中A是固定的,B可通過菜單進行選擇。
表單提交B發送給bean進行進一步處理(創建和保存關係對象AToB)。jsf將selectOneMenu值作爲直接請求託管bean發送
不工作的情況!
<h:selectOneMenu value=#{b}>
<!-- b items from bean -->
</h:selectOneMenu>
<h:commandButton action="#{bean.addBToSelA(b)}"/>
<managed-bean>
<description>B Entity Request Bean</description>
<managed-bean-name>b</managed-bean-name>
<managed-bean-class>B</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
工作情況!
但是,如果selectOneMenu值是不同的託管bean的嵌套屬性,它將起作用。 (例如AToB)
<h:selectOneMenu value=#{aToB.b}>
<!-- b items from bean -->
</h:selectOneMenu>
<h:commandButton action="#{bean.addBToSelA(aToB.b)}"/>
<managed-bean>
<description>AToB Entity Request Bean</description>
<managed-bean-name>aToB</managed-bean-name>
<managed-bean-class>AToB</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
注意:如果我的「b」只是一個不同的請求託管bean的屬性就足夠了。
有人可以如此善良,並解釋爲什麼?
感謝您的回答,稍後會進行測試。那些請求範圍的實體只是來自Hibernate的Pojo,根本沒有任何註解。它們從EAR中檢索並在客戶端共享(將來)。我的想法是,如果有必要,我可以通過這種方式爲每個客戶保持獨立性和不同性。如果註釋是應用程序/項目特定的,肯定不會重用,我不介意將它們插入到源代碼中。但仍然各有利弊。 – djmj 2012-02-18 04:07:45
我無法刪除它,因爲我有另一個表單,可以在其中添加具有用戶輸入屬性的新B對象。所以我只需要重命名它。 – djmj 2012-02-18 04:37:00