AbstractChoiceでnullを選択肢としてつかう
まあ、そんな設計まずいかんだろという話はおいといて。
RadioChoice<Boolean> choices = new RadioChoice<Boolean>("wicket:id",Arrays.asList(null,true,false)); choices.setChoiceRenderer(new IChoiceRenderer<Boolean>(){ private static final long serialVersionUID = 1L; @Override public Object getDisplayValue(Boolean value) { if(value==null){ return "どちらともいえない日本人的回答"; } return value?"はい":"いいえ"; } @Override public String getIdValue(Boolean object, int index) { if(object==null){ return "-1";//AbstractSingleSelectChoice.NO_SELECTION_VALUE }else{ return object.toString(); } } }); //関係ないけど改行しない場合こんなかんじだよね choices.setSuffix(" ");
NO_SELECTION_VALUEがprotectedなので、ちょっといやんなかんじ。
まあ、どんな状況でも未選択を残したい場合とか、プロパティファイルの"nullValid"がアレな場合とかに。