设置:jsf 2 和 primefaces。
我的 xhtml 页面包含一个带有图形的画布。用户可以点击图形的某个区域,这会调用一个js函数,该函数返回一个特定于该区域的字符串,我们称之为“textFromClickedRegion”。此字符串存储在 inputHidden 字段中。
javascript 中的下一行将包含 inputhidden 字段的表单提交给 bean,并打开一个 confirmDialog(在 primefaces 中),其标题应由 bean 中的字符串自定义。
问题:对话框打开,但字符串永远不会获得 bean 的值(只是 textFromClickedRegion)。
js脚本:
textFromClickedRegion = region.getText();
document.getElementById('formId:nameClicked').value = textFromClickedRegion;
document.getElementById('formId:submitNameClicked').click();
xhtml:
<h:form id="formId">
<h:inputHidden id="nameClicked" value="#{reportBean.nameClicked}"/>
<p:commandButton id="submitNameClicked" type="button" process="@form" onclick="cd.show();"/>
</h:form>
<p:confirmDialog id ="dialogBox" message="#{reportBean.nameClicked}, are you sure about destroying the world?"
header="Initiating destroy process" severity="alert"
widgetVar="cd">
<p:commandButton value="Yes Sure" oncomplete="confirmation.hide();"/>
<p:commandButton value="Not Yet" onclick="confirmation.hide();" type="button" />
</p:confirmDialog>
如何让我的 confirmDialog 显示 js 函数返回的字符串?
[注意:您会认识到以上内容是 Primefaces 手册和BalusC关于客户端和服务器之间的通信以及 jsf / js 之间的通信的帖子的混合 - 感谢他]。