0

私は強化プロジェクトに取り組んでいます。親<form>要素があります。この親フォーム内に XHTML ファイルが含まれています。含まれている XHTML ファイルには、<a4j:commandLink>. このアクションは呼び出されていません。<a4j:commandLink>これで、 をラップするとうまくいきます<h:form>。このようにして、親フォームのアクションが のアクションと同様に呼び出されます<a4j:commandLink>。ただし、フォームのネストは推奨されません。親フォームのアクションはサーブレットに送られ、私のアクションはリクエスト スコープの Bean にあるため、使用できません。サーブレットの Bean にアクセスできません。を使用せずにアクション コールを行う方法についてのヘルプ<h:form>は大歓迎です。これがどのように見えるかです:

    <form id="parentFormId" name="parentFormId" action="aservletaction">
      <a4j:outputPanel id="includedRegion">

        <ui:include src="setupView.xhtml"></ui:include>
     </a4j:outputPanel>
   </form>

setupView.xhtml の内容:

<ui:composition>
   <a4j:outputPanel>
        <h:form>
        <a4j:commandLink action="#{myBean.actionMethod}"
          render="adatatableid" limitRender="true"/>
        </h:form>
</ui:composition>
4

2 に答える 2

2

RichFaces コンポーネントはフォーム内に配置する必要があります。そうしないと機能しません (少なくとも実行可能コンポーネント)。

現在、<a4j:commandLink>(および commandButton) フォーム全体を実行することがデフォルトの動作です。これを変更するには、execute 属性を使用します。

<a4j:commandLink execute="@this" … >

これにより、実行がリンクのみに制限されます。

于 2013-05-30T08:37:35.623 に答える
1

うまくいかないはずです。forms をネストしないでください。これは、HTML 全般、特にJSF によってレンダリングされるHTML コードでは認められないためです。したがって、コードには次の構造があります。

<form>
    ...
    <h:form>
        ...
    </h:form>
    ...
</form>

それが期待どおりに機能する場合は削除します。つまり、単純なフォームからフォームへの構造を作成します。

于 2013-05-30T06:31:22.143 に答える