1

私は自分のページをできるだけユーザーフレンドリーにしたいと思っています。アイデアはありますが、解決したい方法では少し難しいです。

Primefacesを使用していますが、selectOneMenu要素を使用して、selectOneMenuで選択された変数の値を含むoutputTextのみに変更したいと考えています。誰かが気の利いたアイデアを持っていますか?

4

1 に答える 1

1

これは、ajaxと部分レンダリングで実行できます。これが私のアイデアのスケッチです(テストされておらず、プレーンなJSFで):

<h:panelGroup id="wrapper">
  <h:selectOneMenu value="#{myBean.myValue}" 
                   rendered="#{myBean.myValue == someInitialValue}" ...>
     <f:ajax render="wrapper"/>
       ... (your select items here)
  </h:selectOneMenu>
  <h:outputText value="#{myBean.myValue}" 
                rendered="#{myBean.myValue != someInitialValue}" .../>
</h:panelGroup>

そしてそれはそれがすることです:

の値h:selectOneMenuが初期化され、初期値の場合にのみメニューが表示されます。

値を変更すると、周囲のパネルグループが再レンダリングされ、メニューが非表示になり、表示されますh:outputText

outputTextはページの読み込み時に存在しないため、これにはラッピングpanelGroupが必要です。フォームが小さい場合は、render=@form代わりに、または他の周囲のコンテナを使用することもできます。そうすれば、ラッパーは必要ありません。

于 2012-08-09T09:31:28.227 に答える