0

私はこれを理解しようとして頭をかき集めてきました。非常に興味深い問題であることが判明した、非常に単純な要件があります。

要件は、ユーザーがラジオ ボタン リストの選択肢を選択したときにタイム スタンプを更新することです。

だから私はラジオボタンのリストを持っています:

...
<h:selectOneRadio value="#{mybean.myvalue}" >
    <f:selectItem itemLabel="A" itemValue="A"/>
    <f:selectItem itemLabel="B" itemValue="B"/>
    <f:selectItem itemLabel="C" itemValue="C"/>
    <f:selectItem itemLabel="D" itemValue="D"/>
    <f:ajax render="timeBox" listener="#{measurements.captureTime('timeBox')}"/>
</h:selectOneRadio>
...

そして、ページの少し下にあるテキスト ボックス:

...
<h:outputText id="timeBox" value='#{measurements.timeBox}'>
    <f:convertDateTime pattern="HH:mm:ss"/>
</h:outputText>
...

次に、バッキング Bean でリスナーを定義します。

    ...
public void captureTime(String id){
       if(id.equals("timeBox"){
           timeBox = new Date(System.currentTimeMillis());
       }
}
    ...

しかし、ラジオボタンを変更しても値が更新されません。これは JSF のさまざまなフェーズに関係していると確信しています (つまり、この投稿の問題のために更新されていません: http://balusc.blogspot.ca/2012/03/reset-non-processed- input-components-on.html )しかし、それを修正する方法が完全にはわかりません..可能であれば、別のライブラリを含めることは避けたいです。

いつものように、さらに情報が必要な場合はお知らせください。喜んで対応させていただきます。

ありがとう!

編集 これらのコンポーネントの構造は次のとおりです。

<h:form>
<table>
  <tr>
    <td>
     <h:select.../>
    </td>
  </tr>
  <tr>
    <td>
     <h:output.../>
    </td>
  </tr>
</table>
</h:form>
4

1 に答える 1

0

指定された構造は、同じ ID を持つコンポーネントを複製したことを示しています。同じ ID を持つコンポーネントが重複していないことを確認してください。

于 2012-05-29T22:56:48.893 に答える