2013-12-22 43 views
1

我的應用程序中的某些字段在實體之間很常見。我不想將它們從一個xhtml複製到另一個,所以我創建了一個單獨的xhtml,然後是ui:包含它需要的地方。我面臨的挑戰是將包含xhtml的xhtml連接到支持表單的bean。如何將包含的xhtml與託管的JSF bean綁定?

這裏只是一個光禿禿的例子。玩家和教練是獨立的實體,並有專門的xhtml文件。他們都有一個名爲firstName的字段,並且都有一個Save按鈕。這兩個元素在單獨的common.xhtml文件中。

<h:inputText value="#{playerBean.player.firstName}" '/> 
<h:commandButton value="Save" action="#{playerBean.save}" /> 

該代碼清楚,當它被包括在'coach_edit.xhtml」,因爲在這種情況下,bean名字就是coachBean和實體存儲在coachBean.coach將無法正常工作。

是否有可能通過某種別名而不是顯式名稱將輸入文本和命令按鈕綁定到beans/properties?

更新

拉達的解決方案非常適用於bean的一部分。就bean的實體而言,我爲Player和Coach bean分別添加了一個getEntity()方法來分別返回玩家和教練。這樣,所包含的xhtml指的是entity而不是playercoach

回答

2

您可以通過param將適當的bean傳遞給包含的XHTML文件。在你的情況下使用它:

<ui:include source="common.xhtml"> 
    <ui:param name="commonBean" value="#{playerBean}"/> <!-- or coachBean in second case --> 
</ui:include>