0

内部フォームを含むメインフォームがあり(内部フォームは編集の場合にのみ表示されます)、メインフォームを送信するときに内部フォームが送信されない場合よりも、両方のフォームを互いに分離したいのですが、どうすればよいですか?

ここにスニペットがあります:

<h:form id="mainForm">

  <!-- some inputs here -->

  <h:commandButton value="submit main" action="#{myBean.mainSubmit()}" />

 <h:panelGroup rendered="#{myBean.editMode}"> 
    <h:form id="innerForm"> 
      <!-- some inputs here -->

      <h:commandButton value="submit inner" action="#{myBean.innerSubmit()}" />
    </h:form>
 </h:panelGroup>

 </h:form>

現在の動作:mainFormを送信すると、内部フォームも送信されますが、内部フォームを送信すると、メインは送信されません。

望ましい動作:mainFormを送信すると、内部は送信されません。また、内部を送信すると、メインも送信されません。

4

2 に答える 2

3

ネストされたフォームは、ページに本当に入れたいものではありません...

このアプローチはどうですか?2つのパネルにラップし、ajaxを使用してそれらを実行/レンダリングします

<h:form id="mainForm">
 <h:panelGroup id="FirstPanel" rendered="#{myBean.editMode}"> 
  <!-- some inputs here -->
  <h:commandButton value="submit main" action="#{myBean.mainSubmit()}" >
      <f:ajax execute="FirstPanel" render="FirstPanel"></f:ajax>
  </h:commandButton>
 </h:panelGroup>

 <h:panelGroup id="SecondPanel" rendered="#{myBean.editMode}"> 
   <!-- some inputs here -->
   <h:commandButton value="submit inner" action="#{myBean.innerSubmit()}" >
       <f:ajax execute="SecondPanel" render="SecondPanel"></f:ajax>
   </h:commandButton>
 </h:panelGroup>
</h:form>

たとえば、必要な数だけ配置して<h:panelGroup、f:ajaxのレンダリング実行にIDを追加できますf:ajax execute="FirstPanel ThirdOne AnotherOne"...

于 2012-04-08T09:16:03.917 に答える
0

IE9の内部フォームで、フォームの内容が表示されないという問題が発生したため、内部フォームを削除して、icefacesのpartialSubmit機能を使用しました。これで問題は解決しました。

于 2012-04-22T09:03:21.900 に答える