0

「selectOneRadio」として提示された 4 つの場所から選択できます。1 つの場所を選択すると、commandLinks の 1 つをクリックすると Bean が更新されます。

<ui:composition template="/WEB-INF/templates/BasicTemplate.xhtml">
    <ui:define name="content">
    <h:form>
    <h:commandLink action="#{wrapper.goBack}" value="GESTERN"></h:commandLink>
    ---------
    <h:commandLink action="#{wrapper.goForward}" value="MORGEN"></h:commandLink>
    <br />
    <h:selectOneRadio id="locationSelection" value="#{wrapper.actualLocation}" >
        <f:selectItems value="#{wrapper.allLocations}" var="actualLocation" ></f:selectItems>
    </h:selectOneRadio>
</h:form>    
</ui:define>
</ui:composition>

ラジオ ボタンをクリックしたときにバッキング Bean をすぐに変更するには、何を変更する必要がありますか?

どんな助けでも大歓迎です。

4

1 に答える 1

0

クリック時の送信を行うには、Ajax を使用する必要があります。

JSF 1.2 の場合、JSF 用の多くの ajax フレームワークの 1 つを使用する必要があることを意味します (A4J でのリッチフェイスなど)。

JSF 2.x の場合は組み込みです。

<ui:composition template="/WEB-INF/templates/BasicTemplate.xhtml">
    <ui:define name="content">
    <h:form>
    <h:commandLink action="#{wrapper.goBack}" value="GESTERN"></h:commandLink>
    ---------
    <h:commandLink action="#{wrapper.goForward}" value="MORGEN"></h:commandLink>
    <br />
    <h:selectOneRadio id="locationSelection" value="#{wrapper.actualLocation}" >
        <f:selectItems value="#{wrapper.allLocations}" var="actualLocation" ></f:selectItems>
        <f:ajax event="click" />
    </h:selectOneRadio>
</h:form>    
</ui:define>
</ui:composition>

これにより、ラジオボタンがクリックされるとすぐにフォームが送信されます。処理するフィールドと再レンダリングするフィールドを指定することもできます。

参照: http://mkblog.exadel.com/2010/04/learning-jsf-2-ajax-in-jsf-using-fajax-tag/

于 2012-06-15T13:46:09.643 に答える