Jsf ManagedBean在命名时丢失数据
我在我的企业应用程序中使用JSF2.2和PrettyFaces 3.3.3 我用注释(AdminCompanyController.java)映射了Bean:Jsf ManagedBean在命名时丢失数据,jsf,ejb,managed-bean,prettyfaces,Jsf,Ejb,Managed Bean,Prettyfaces,我在我的企业应用程序中使用JSF2.2和PrettyFaces 3.3.3 我用注释(AdminCompanyController.java)映射了Bean: @ManagedBean @视域 @URLMappings(映射={ @URLMapping(id=“admin companys”,pattern=“/admin/companys”,viewId=“/admin/companys.jsf”) }) 公共类AdminCompanyController实现可序列化{ @EJB 私人公司服务
@ManagedBean
@视域
@URLMappings(映射={
@URLMapping(id=“admin companys”,pattern=“/admin/companys”,viewId=“/admin/companys.jsf”)
})
公共类AdminCompanyController实现可序列化{
@EJB
私人公司服务公司服务;
私人收藏公司=新ArrayList();
公司;
@施工后
公共void init(){
companys=companyService.getAllCompanys();
}
}
在我的视图中,我显示了一个包含以下数据的表(companys.xhtml):
这很好,我有29家公司。但一旦我给Bean命名:@ManagedBean(name=“companiesBean”)
,我就会丢失所有数据。该视图显示0结果
它是否与bean范围有关?或者EJB注入也需要一个名称?您需要更新.xhtml中的EL表达式以匹配bean的名称。如果bean名为“companiesBean”,则.xhtml不应为:
<ui:repeat value="#{adminCompaniesController.companies}" var="company">
<tr>
<td><h:outputText value="#{company.name}" /></td>
</tr>
</ui:repeat>
它应该是以下内容:
<ui:repeat value="#{companiesBean.companies}" var="company">
<tr>
<td><h:outputText value="#{company.name}" /></td>
</tr>
</ui:repeat>
请注意
属性中的更新值。如果向bean中添加名称,请确保在Facelets中也更新该名称。@LuiggiMendoza是的,在视图中更新名称后,该名称起作用。谢谢,成功了。谢谢!似乎名称注释覆盖了视图中数据绑定的类名。@Named注释默认为类名,直到您通过手动指定名称来覆盖它;)
<ui:repeat value="#{adminCompaniesController.companies}" var="company">
<tr>
<td><h:outputText value="#{company.name}" /></td>
</tr>
</ui:repeat>
<ui:repeat value="#{companiesBean.companies}" var="company">
<tr>
<td><h:outputText value="#{company.name}" /></td>
</tr>
</ui:repeat>