在我的struts2应用程序中,我想在我的控制器上绑定一个布尔属性(让它与isfrobbs () getter一起调用)到一对"是"one_answers"否"单选按钮(我知道我可以使用复选框,但出于各种原因,我们更喜欢显式的"是"one_answers"否")。
对于一个复选框,我要做的事情是这样的:
<@s.checkbox name="frobbed" label="would you like this to be frobbed?" />
然而,对于单选按钮,我完全迷路了。我知道有一个struts2标签名为"radio",但我不确定它是如何使用的。例如,这行不通。
<@s.radio name="frobbed" value="true" label="Please frob this object" />
<@s.radio name="frobbed" value="false" label="No frobbing, thanks." />
我希望这个在控制器中被绑定到frobs的值,这样,例如,当值为true时,"yes"单选按钮被自动选中。
任何想法?
此语法适用于FreeMarker的布尔选择:
<@s.radio label="" name="frob" list="#@java.util.LinkedHashMap@{true:'Frob it',false:'Leave unfrobbed'}" />
当选择是简单的Yes/No、True/False时,我更喜欢在jsp中原位定义这些选择。比如…
<s:radio label="Frobbed?" list="#{true:'Frob Me',false:'Leave me Frobless'}" name="frobbed" value="%{frobbed}"></s:radio>
对
通常<s:radio>
标记与选项列表(或映射)一起使用。例如,对于映射,键将是单选值(如本例中的Boolean.TRUE
和Boolean.FALSE
),值将是单选按钮标签("Frob away","I choose to remain frobbedless")。
<s:radio list="yesNo" name="frobbed"/>
yesNo
属性值为该列表或映射。
(对于列表,您将公开带有标签和值的对象,并使用<s:radio>
属性"listKey"one_answers"listValue"。(这个))