Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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 h:dataTable中未显示结果_Jsf_Jsf 2_Datatable - Fatal编程技术网

Jsf h:dataTable中未显示结果

Jsf h:dataTable中未显示结果,jsf,jsf-2,datatable,Jsf,Jsf 2,Datatable,我已经用JSF实现了一个小应用程序。当我在输入字段中输入数据并单击搜索按钮时,数据表中不会显示任何内容。它实际上应该返回数据表中的2条记录。我的方法是正确的,因为我得到了控制台上显示的2条记录。托管bean从另一个java类调用方法SearchShowroom。注意,我还有一个POJO类。请帮忙解决这个问题 托管Bean public List<Showroom> find() throws Exception{ ShowroomManager sm = new Sh

我已经用JSF实现了一个小应用程序。当我在输入字段中输入数据并单击搜索按钮时,数据表中不会显示任何内容。它实际上应该返回数据表中的2条记录。我的方法是正确的,因为我得到了控制台上显示的2条记录。托管bean从另一个java类调用方法SearchShowroom。注意,我还有一个POJO类。请帮忙解决这个问题

托管Bean

    public List<Showroom> find() throws Exception{
    ShowroomManager sm = new ShowroomManager();
    return sm.SearchShowroom(make1);

}
public List find()引发异常{
ShowroomManager sm=新的ShowroomManager();
返回sm.SearchShowroom(make1);
}
JSF

<h:form>


    Enter the make of vehicle to search: 
    <h:inputText value = "#{carManagedBean.make1 }"/> <br> <br>

    <h:commandButton value = "Search" action = "#{carManagedBean.find}">

    <br> <br>


    <h:dataTable value = "#{carManagedBean }" var = "car" border = "1" width = "15%">
        <f:facet name = "header">
        <h:outputText value = "List of Showrooms"/>
        </f:facet>

        <h:column>
            <f:facet name = "header">
                <f:verbatim> Location </f:verbatim>
            </f:facet>
            <h:outputText value = "#{car.manager }"/>
        </h:column>

        <h:column>
            <f:facet name = "header">
                <f:verbatim> Manager </f:verbatim>
            </f:facet>
            <h:outputText value = "#{car.location }"/>

        </h:column>     

    </h:dataTable>
    </h:commandButton>
</h:form>

输入要搜索的车辆品牌:




位置 经理
**按如下所述,尝试以下方法。。。 **作为dataTable的值,您应该使用一个对象列表,并使用#find()方法填充该列表。 **作为补充,您可以查看richface或primeface展示案例以查看(dataTable)示例


输入要搜索的车辆品牌:




位置 经理

您需要如下设置ajax按钮:

<h:commandButton value="Search" actionListener="#{carManagedBean.find}">
 <f:ajax render="myTable"/>
</h:commandButton>

<h:dataTable id="myTable" value="#{carManagedBean}" var="car">
//your code...
</h:dataTable>

//你的代码。。。
不要忘记在数据表中添加一个id,以便在单击按钮后重新显示


PS:如果你需要保持在同一个页面中,请使用“actionListener”。属性“action”仅在您需要加载其他页面时使用。

p:commandButton
中使用
h:datatable
?是。。怎么了?这是我20年职业生涯中从未遇到过的设计上帝保佑,你现在遇到了兄弟。按钮什么时候触发?总是吗?当您在数据表外部但在边框内部单击时?它到底有没有渲染?还是一个奇怪的结构。请找到一些基本教程…使用搜索引擎。谢谢你的回复。方法listWithSearchResult,它应该更具体地包含什么?在internet上搜索基本数据表示例。如果你问这个问题,我现在知道你为什么在commandButton中放一个datatable;-)carManagedBean.find方法由于您的逻辑,您可以将此搜索的结果(car.manager和car.location)放入带有搜索结果的列表中,您将使用它在数据表中显示。最好使用@Kukelitje sugestion或遵循以下步骤
<h:commandButton value="Search" actionListener="#{carManagedBean.find}">
 <f:ajax render="myTable"/>
</h:commandButton>

<h:dataTable id="myTable" value="#{carManagedBean}" var="car">
//your code...
</h:dataTable>