我在portlet中有一個userManagement.xhtml文件名作爲UserManagement我已經包含在不同的面板不能讓我的班級管理的bean
3個XHTML文件我userManagement.xhtmlpage基本上是這樣的
<h:form>
<p:panel rendered="#{userManagement.condition}">
<ui:include src="userTable.xhtml"/>
</p:panel>
<p:panel rendered="#{userManagement.condition}"/>
<ui:include src="userDetails.xhtml"/>
</p:panel>
<p:panel rendered="#{userManagement.condition}"/>
<ui:include src="userActivity.xhtml"/>
</p:panel>
</h:form>
基於渲染條件,我用來向用戶顯示3個xhtml文件(面板)中的一個。
爲了管理這些,我有1個託管bean名稱爲UserManagement.java。其他3個xhtml文件還有3個文件。
我試圖讓UserTable.java,UserDetails.java和userActivity.java但我通過創建對象和UserManagement使用它越來越
com.example.useroperations.UserTable cannot be cast to javax.faces.component.UIComponent
現在我用這個作爲一個正常的Java類。 java的。但是我想讓它成爲託管bean。
我的Java代碼是這樣的 UserManagement.java
@ManagedBean
@ViewScoped
class UsermanageMent{
private UserTable userTable;
public void showUserTable(){
this.userTable = new UserTable("some param");
...
...
}
public void setUserTable(UserTable userTable){
this.userTable = userTable
}
public getUserTable(){
return this.userTable();
}
}
UserTable.java
@ManagedBean
@ViewScoped
public UserTable{
......
......
public UserTable(String param){
......
this.retrieveListOfUser(param);
}
public void retrieveListOfUser(String param){
......
......
SomeOtherClass obj = new SomeOtherClass();
obj.retrieve(); // This is for DB call
}
}
你能發佈你的java代碼嗎? –
@XtremeBiker我已經發布了我的java代碼 –
'UserTable'並不打算成爲一個託管bean。這個類將是一個用戶列表的包裝器。託管的bean應該只包含它。所以避免'UserTable'是一個託管bean。除此之外,你從哪裏引用表?請記住,'ui:include'中包含的所有內容都將在'rendered'屬性之前評估。發生這種情況是因爲'ui:include'在視圖構建時工作,而'rendered'在視圖渲染時工作。所以,只要你繼續使用'ui:include',正確的方法就是'c:choose'。 –