我在JSF中实现了一个小应用程序。当我在输入字段中输入数据,然后单击搜索按钮时,我的数据表中不显示任何内容。它实际上应该在数据表中返回2条记录。我的方法是正确的,因为我得到了控制台上显示的2条记录。托管bean从另一个java类调用方法SearchShowroom。请注意,我也有一个POJO类。请帮助解决问题。
托管Bean
public List<Showroom> find() throws Exception{
ShowroomManager sm = new ShowroomManager();
return 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>
答案 0 :(得分:0)
**尝试这种方式,如下所述...... **作为dataTable的值,您应该使用#find()方法填充的对象列表。 **另外想想你可以看看richface或primeface showcases看看(dataTable)的例子
<h:form>
Enter the make of vehicle to search:
<h:inputText value = "#{carManagedBean.make1 }"/> <br> <br>
<h:commandButton value = "Search" action = "#{carManagedBean.find}" render="yourDataTable">
</h:commandButton>
<br> <br>
<h:dataTable id="yourDataTable" value = "#{carManagedBean.listWithSearchResult }" 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>
答案 1 :(得分:-1)
您需要设置如下的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>
单击按钮后,请不要忘记在dataTable中添加ID以重新显示。
PS:如果您需要保留在同一页面中,请使用“actionListener”。只要您需要加载其他页面,就可以使用属性“action”。