3

私は以下のようなフォームを持っています:

<h:form id="x" prependId="false">

      <h:dataTable id="v" value="#{userBean.cdManagerCollection}" var="cd" 
         border="1">

            <f:facet name="header">
                Test Table 
            </f:facet>
            <h:column>
                <f:facet name="header">
                    <h:outputText value="Name" />
                </f:facet>
                <h:inputText id="title" value="#{cd.title}"  />
            </h:column>                                                     
        </h:dataTable>

        <input type="hidden" id='btnName' name="btnName" value="Apply"/>
        <a4j:commandButton  id="btn" value="SUBMIT" action="#{userBean.processCD}" reRender="x"/>

</h:form>

私の質問は、a4j:command ボタンを使用してフォームを送信し、同じものを再レンダリングすると、リクエスト パラメータ (この場合は非表示の btnName) にアクセスできますか? (facescontext環境変数を介して意味しますか?)

基本的には、リクエストパラメータに基づいて ${userBean.cdManagerCollection} を返しながらデータを決定する必要があります。

4

2 に答える 2

1

<input>もちろん、要素がHTTPリクエストの属性として利用できる場合の値。つまり、そのパラメータはuserBean.processCD、次の呼び出しを介してアクションメソッドの文字列として表示されます。

FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("btnName");

私が強くお勧めするJSFアプローチを採用する場合はvalue、タグの属性を<h:inputHidden>Beanプロパティにバインドして、JSFが独自に入力変換(検証、変換、プロパティ設定など)を実行できるようにします。

<h:inputHidden id="btnName" value="#{userBean.btnName}"/>

管理対象Beanのプロパティを使用する場合:

private String btnName;//getter+setter
于 2013-03-21T17:07:58.113 に答える
-1

btnNameからのパラメーターを読み取る場合、userBeanそのパラメーターは既に にありますuserBean

<input type="hidden" id="btnName" name="btnName" value="#{userBean.btnParameter}" />
于 2013-03-21T08:26:38.087 に答える