我有一个简单的 JSF Web 应用程序,如下所示。Java 类包含:
private String myString;
public String getMyString()
{
return myString;
}
public void setMyString( String radioValue )
{
myString = someHashMap.get( radioValue );
doStuffWith( myString );
}
JSF 页面源包含:
<h:form>
<h:selectOneRadio id="topicSelectOneRadio" required="true"
requiredMessage="Choose a thing"
value="#{someBean.myString}">
<f:selectItem itemValue="radioValue1" itemLabel="1"/>
<f:selectItem itemValue="radioValue2" itemLabel="2"/>
</h:selectOneRadio>
<p><h:commandButton value="Do it"/></p>
</h:form>
据我了解,网页中的 radioValueX 字符串在 Java 类中用作 myString setter 方法的参数。所以我想进一步扩展它以使用任何类:
private Foo myFoo;
public Foo getMyFoo()
{
return myFoo;
}
public void setMyFoo( String radioValue )
{
myFoo = someHashMap.get( radioValue );
doStuffWith( myFoo );
}
和
<h:form>
<h:selectOneRadio id="topicSelectOneRadio" required="true"
requiredMessage="Choose a thing"
value="#{someBean.myFoo}">
<f:selectItem itemValue="radioValue1" itemLabel="1"/>
<f:selectItem itemValue="radioValue2" itemLabel="2"/>
</h:selectOneRadio>
<p><h:commandButton value="Do it"/></p>
</h:form>
但是,我收到以下错误:
Conversion Error setting value 'radioValue' for 'null Converter'.
我不确定我是否了解需要在哪里进行任何类型的“转换”。在这两种情况下,单选按钮中的字符串值都被用作 setter 方法的参数,该方法将字符串值作为参数。没错,在后一种情况下,它实际上是在为不是字符串的东西设置值,但这不重要,不是吗?我不想将后一种情况下的 radioValueX 字符串转换为任何其他类型,只是将其用作哈希图的键,与第一种情况相同。
任何人都可以帮助我了解我所缺少的吗?谢谢!