モデルがアタッチされたRadioChoiceコンポーネントがあります。ラジオの選択はブールフィールドに関連付けられているため、ラジオボタンを使用する必要があります(はい/いいえ)。私の問題は、ブールフィールドがfalseに設定されているため、ページのレンダリング時にnoボタンが事前に選択されることです。事前に選択した値が必要ないため、これを防ぐ方法はありますか。
どんなアイデアでも大歓迎です。
ありがとうございました!
モデルがアタッチされたRadioChoiceコンポーネントがあります。ラジオの選択はブールフィールドに関連付けられているため、ラジオボタンを使用する必要があります(はい/いいえ)。私の問題は、ブールフィールドがfalseに設定されているため、ページのレンダリング時にnoボタンが事前に選択されることです。事前に選択した値が必要ないため、これを防ぐ方法はありますか。
どんなアイデアでも大歓迎です。
ありがとうございました!
HTMLの観点から、事前に選択されたラジオ値を省略することはお勧めしません(http://www.w3.org/TR/html401/interact/forms.html#radioを参照)。また、ユーザーが誤って1つをクリックした場合にラジオグループ内のすべての値の選択を解除する方法がないため、ユーザーにとってはかなり苛立たしいものです。おそらくUIを再考する必要があります-3番目の「不明」オプションの余地はありますか?
RadioChoice
コンポーネントがモデルに接続されているため。あなたが書くとき、あなた
yourRadioChoice.getValue()
は常にあなたのモデル値を更新された値ではなく得る。これを防ぐために、一時変数を使用できます。
yourRadioChoice.add(new AjaxFormChoiceComponentUpdatingBehavior () {
private static final long serialVersionUID = 1662824638126944259L;
@Override
protected void onUpdate(AjaxRequestTarget target) {
// you can get current value here and set to your temporary variable
// then use anywhere
}
});
ブール値ではなくプリミティブを使用する場合は、RadioChoiceでisSelectedをオーバーライドできます。
@Override
protected boolean isSelected(Boolean object, int index, String selected) {
return false;
}