<p:dialog header="#{bundle['ref.details']}" id="detailsDial"
widgetVar="detailsDialog" style="max-width:800px">
<p:button value="#{bundle['close']}"
onclick="PF('detailsDialog').hide()" />
</p:dialog>
对话框周围没有其他形式,对话框内没有表格。这是我想念的东西,但是什么。我不知道要提供哪些其他信息,因为我们真的不明白p:button如何重新加载仅客户端的页面?没有包含javascript。此外,firebug控制台中也没有错误消息。我在外面使用这样的模板:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="/maintemplate.xhtml">
<ui:define name="content">
<p:dialog ....
答案 0 :(得分:0)
从p:button
移动到p:commandButton
命令按钮默认情况下使用部分请求
<p:dialog header="#{bundle['ref.details']}" id="detailsDial"
widgetVar="detailsDialog" style="max-width:800px">
<p:commandButton value="#{bundle['close']}" onclick="PF('detailsDialog').hide();" type="button" />
</p:dialog>
为了理解差异,只要看到HTML在一个或另一个案例中呈现就足够了,所以对于
<p:button value="Close" onclick="PF('detailsDialog').hide()" />
呈现的HTML是
<button type="button" onclick="PF('detailsDialog').hide();window.open('/ui/button.jsf','_self')" >
<span class="ui-button-text ui-c">Close</span>
</button>
按钮执行GET请求,请注意window.open('/ui/button.jsf','_self')
代表<p:commandButton value="Close" onclick="PF('detailsDialog').hide()" />
呈现的HTML是
<button onclick="PF('detailsDialog').hide();PrimeFaces.ab({s:'j_idt19'});return false;" type="submit">
<span class="ui-button-text ui-c">CloseCommandButton</span>
</button>
注意PrimeFaces.ab({s:'j_idt19'});return false;
,因此它会发送partialUpdate而不是提交封闭表单