2

ボタンによってトリガーされるブールステータス変数に応じて画像を表示するにはどうすればよいですか?そのページ全体をリロードしたくはありませんが、その特定の画像だけをリロードしたいと思います。

フェイスレットページ:

 </h:form>
    <h:commandButton value="test" action="#{bean.toggleStatus}">
        <f:ajax render="image"/>
    </h:commandButton>
    <h:graphicImage id="image" value="status.gif" rendered="#{bean.status}"/>
 </h:form>  

バッキングクラス:

    class Bean {

        private boolean status = false;

        public void toggleStatus() {
            status = true;
        }

        //getter, setter
    }

ここで何が間違っているのか考えてみませんか?

4

1 に答える 1

4

HTML側にレンダリングされていないHTML要素をajax-updateすることはできません。常にレンダリングされるコンポーネントでラップし、代わりに更新します。

例えば

<h:form>
    <h:commandButton value="test" action="#{bean.toggleStatus}">
        <f:ajax render="image"/>
    </h:commandButton>
    <h:panelGroup id="image">
        <h:graphicImage value="status.gif" rendered="#{bean.status}"/>
    </h:panelGroup>
</h:form>

参照:

于 2012-10-05T11:58:18.300 に答える