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