Jsf 将参数传递给同一页中的对话框
我有一个页面包含一个窗体和嵌套在对话框中的其他窗体。 我需要在主窗体中单击按钮时将参数传递给对话框Jsf 将参数传递给同一页中的对话框,jsf,primefaces,Jsf,Primefaces,我有一个页面包含一个窗体和嵌套在对话框中的其他窗体。 我需要在主窗体中单击按钮时将参数传递给对话框 <h:form> <p:dataTable var="form" value="#{myBean.formList}"> <p:commandButton id="selectProduct" update="selectProductForm" oncomplete="selectProductDl
<h:form>
<p:dataTable var="form" value="#{myBean.formList}">
<p:commandButton id="selectProduct"
update="selectProductForm" oncomplete="selectProductDlg.show()"
image="ui-icon-" >
<f:param name="formId" value="#{form.id}" />
</p:commandButton>
</p:dataTable>
</h:form>
<p:dialog>
...<h:form>
<p:commandButton action="#{myBean.setSelected}"
update="main_form"
oncomplete="if(#{myBean.errorText == 'SUCCESS'}){ selectProductDlg.hide();}"
value="Sec">
</p:commandButton>
我错在哪里
谢谢假设bean在视图范围内,只需在datatable列中命令按钮的action方法中将其设置为bean属性direclty
<h:form>
<p:dataTable var="form" value="#{myBean.formList}">
<p:column>
<p:commandButton id="selectProduct"
action="#{myBean.setCurrentForm(form)}"
update="selectProductForm" oncomplete="selectProductDlg.show()"
image="ui-icon-">
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
<p:dialog>
<h:form>
<p:commandButton action="#{myBean.setSelected}"
update="main_form"
oncomplete="if(#{myBean.errorText == 'SUCCESS'}){ selectProductDlg.hide();}"
value="Sec">
</p:commandButton>
</h:form>
</p:dialog>
如果对话框中有取消按钮,则需要让其操作方法将其设置为null
无需在POST请求中处理原始HTTP请求参数。
应该尽可能只在GET请求中使用(例如,
,
,等等)。我只是调用了PDataTables的数据模型,如下所示
Khaleel非常感谢,我以前认为我无法将参数传递给action方法,现在我编辑了代码,它成功了。请尝试弄清楚为什么建议的编辑队列已满,为什么没有处理,因为帖子当前没有任何有用的表单。
<h:form>
<p:dataTable var="form" value="#{myBean.formList}">
<p:column>
<p:commandButton id="selectProduct"
action="#{myBean.setCurrentForm(form)}"
update="selectProductForm" oncomplete="selectProductDlg.show()"
image="ui-icon-">
</p:commandButton>
</p:column>
</p:dataTable>
</h:form>
<p:dialog>
<h:form>
<p:commandButton action="#{myBean.setSelected}"
update="main_form"
oncomplete="if(#{myBean.errorText == 'SUCCESS'}){ selectProductDlg.hide();}"
value="Sec">
</p:commandButton>
</h:form>
</p:dialog>