Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf ManagedBean在命名时丢失数据_Jsf_Ejb_Managed Bean_Prettyfaces - Fatal编程技术网

Jsf ManagedBean在命名时丢失数据

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 私人公司服务

我在我的企业应用程序中使用JSF2.2和PrettyFaces 3.3.3

我用注释(AdminCompanyController.java)映射了Bean:

@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>