我提供了一个使用JSF的搜索功能。我得到了列表,并在datatable中正确地显示了它:
<p:dataTable id="props" var="prop" value="#{propController.propSearch}" editable="true" style="margin-bottom:20px">
<p:column headerText="Id" width="20">
<h:outputText value="#{prop.id}" />
</p:column>
<p:column headerText="Name" width="300">
<h:outputText value="#{prop.name}"/>
</p:column>
<p:column headerText="Description">
<h:outputText value="#{prop.shortDescription}" />
</p:column>
<p:column headerText="Price" width="120">
<h:outputText value="#{prop.price}" />
</p:column>
<p:column width="120">
<h:commandButton value="View Prop" immediate="true" action="#{propController.viewSingleProp(prop)}" />
</p:column>
<p:column width="120">
<h:commandButton value="Delete" immediate="true" onclick="return confirm('Are you sure you want to delete this prop?')" actionListener="#{propController.deleteProp(prop)}" />
</p:column>
</p:dataTable>
</h:form> 但是,不会调用用于查看每个单独项目的commandButton。相反,搜索页面只是刷新,没有数据。
为什么会发生这种情况?
发布于 2014-07-09 01:36:40
(我希望您在问题中发布的代码中缺少<h:form>的开始标记,而不是在实际代码中!)
您需要从h:commandButton中删除属性immediate="true"。
请参见:
https://stackoverflow.com/questions/24637634
复制相似问题