のソース コードをたどっていくと、メソッドUISelectOne
内に次のコードが見つかりました。protected void validateValue(FacesContext context, Object value)
boolean found = SelectUtils.matchValue(getFacesContext(),
this,
value,
new SelectItemsIterator(context, this),
getConverter());
次の宣言を検討してください。
<h:selectOneRadio value="#{bean.pr}" converter="Conv" required="true" requiredMessage="msg">
<f:selectItems value="#{bean.dates}" />
</h:selectOneRadio>
変換された値は、リストに入力した値のいずれかと等しくなるはずです。実際の値の型が予想と異なるため、検証エラーが発生します。
質問:変換された値が検証された値と一致しないのはなぜですか?