我是JSF2的新手。
我正在尝试使用p:dialog显示表格。
该表具有项目列表,并且在行的末尾具有此删除功能。我的问题是,当它单击删除时,整个页面将重新加载,并且我的弹出表关闭。
但是,当它不在p:dialog中时,删除功能将正常工作。
我的bean,无论是视图范围还是会话范围的,都输出相同的输出。
这是我的bean中的删除代码
public String delete(Items items) {
getItemList.remove(items);
return null;
}
在我的xhtml中剪下
<p:dialog header="Item Table" widgetVar="popUpTbl" modal="true" >
<h:form>
<p:dataTable style="width:800px;height:485px;" id="popUpTbl" var="item" value="#{myBean.itemList}" >
<p:column headerText="Item A">
<h:outputText value="#{item.itemA}" />
</p:column>
<p:column headerText="Item B">
<h:outputText value="#{item.itemB}" />
</p:column>
<p:column headerText="Action">
<h:commandLink value="Delete" action="#{myBean.delete(item)}" />
</p:column>
</p:dataTable>
</h:form>
</p:dialog>
最佳答案
h:commandLink makes
完整的帖子并重新加载整个页面,您要使用p:commandLink
默认情况下执行的ajax。
试试看
<p:commandLink value="Delete" process="@this" update="@form" action="#{myBean.delete(item)}" />
process="@this"
因为p:commandLink
默认处理整个表单(不需要),而update="@form"
因为您需要用Bean数据(或至少是数据表)刷新整个表单,但这等效于表格)。您可以保留
h:commandLink
并完成like here,但是它已内置到p:commandLink中。关于java - JSF2-使用p:dialog重载弹出表格,并在调用函数后关闭,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36995462/