Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 将参数传递给同一页中的对话框_Jsf_Primefaces - Fatal编程技术网

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的数据模型,如下所示

  • 在JavaBean中,我正在从后端ReceivedDnsController.refreshData方法刷新数据。
  • 要刷新表单中的数据,在隐藏对话框后,我将数据模型刷新称为35;{receivedFdnsController.newReceivedFdnsDataModel}。更多细节如下所示
  • 问候
    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>