0

<t:selectOneRadio>jsfページでTomahawkを使用しました。バックBeanのラジオボタンごとに1つのブール値を予約しましたが、コンポーネントをバッキングBeanにリンクする際に問題が発生します。コンポーネントをバッキングBeanにリンクするにはどうすればよいですか?

バッキングBeanのデータモデルは間違っていますか?

これは私のコードです:

<t:radio index="0" for="select"></t:radio>
<t:selectOneRadio id="select" layout="spread">
<f:selectItem itemLabel="Every" itemValue="Every" />
<h:inputText id="days" /> days 
<br />
<t:radio index="1" for="select"></t:radio>
<f:selectItem itemLabel="Every Weekday"
itemValue="Every Weekday" />
</t:selectOneRadio>

属性を使用しvalueます。

<t:selectOneRadio value="#{bean.selectedItem}">

とはいえ、コンポーネントはコード内で正しい方法で使用されていません。selectitemsのみがコンポーネントに含まれ、t:radioインデックスは0で始まる必要があります。これが書き直しです。

<t:selectOneRadio id="frequency" value="#{bean.frequency}" layout="spread">
    <f:selectItem itemLabel="Every" itemValue="Every" />
    <f:selectItem itemLabel="Every weekday" itemValue="Every weekday" />
</t:selectOneRadio>

<t:radio for="frequency" index="0" /><h:inputText value="#{bean.days}" /> days
<br />
<t:radio for="frequency" index="1" />

Beanでは、次のものが必要です。

private String frequency;
private Integer days;
// Add/generate getters and setters.

選択に応じて、選択itemValueされたものはfrequency(またはのいずれ"Every"かになります"Every weekday")として設定され、入力daysされたものはとして設定されdaysます。

4

1 に答える 1

1

属性を使用しvalueます。

<t:selectOneRadio value="#{bean.selectedItem}">

つまり、コード内でコンポーネントが正しい方法で使用されていません。selectitems のみがコンポーネントに入る必要があり、t:radioインデックスは 0 から開始する必要があります。次のように書き直します。

<t:selectOneRadio id="frequency" value="#{bean.frequency}" layout="spread">
    <f:selectItem itemLabel="Every" itemValue="Every" />
    <f:selectItem itemLabel="Every weekday" itemValue="Every weekday" />
</t:selectOneRadio>

<t:radio for="frequency" index="0" /><h:inputText value="#{bean.days}" /> days
<br />
<t:radio for="frequency" index="1" />

Bean では、次のものが必要です。

private String frequency;
private Integer days;
// Add/generate getters and setters.

選択に応じて、選択されたitemValueものは として設定されfrequency(したがって、 または のいずれ"Every"かになります"Every weekday")、入力daysされたものは として設定されdaysます。

于 2010-09-12T13:24:04.417 に答える