在我的struts2应用程序中,我想在我的控制器上绑定一个布尔属性(让我们用一个isFrobbed()getter调用它)到一对“是”和“否”单选按钮(我知道我可以使用复选框,但出于各种原因,我们更喜欢明确的“是”和“否”)。
有了一个复选框,我会按照以下方式做点什么:
<@s.checkbox name="frobbed" label="would you like this to be frobbed?" />
然而,使用单选按钮我完全迷失了。我知道有一个名为“radio”的struts2标签,但我不确定它是如何使用的。例如,这不起作用。
<@s.radio name="frobbed" value="true" label="Please frob this object" />
<@s.radio name="frobbed" value="false" label="No frobbing, thanks." />
我希望这与控制器中'frobbed'的值绑定,例如,当值为true时,会自动选择“yes”radiobutton。
有什么想法吗?
答案 0 :(得分:4)
此语法与FreeMarker一起用于布尔选择:
<@s.radio label="" name="frob" list="#@java.util.LinkedHashMap@{true:'Frob it',false:'Leave unfrobbed'}" />
答案 1 :(得分:2)
当选择是简单的Yes / No,True / False时 - 我更喜欢在jsp中定义原位选择。像...这样的东西。
<s:radio label="Frobbed?" list="#{true:'Frob Me',false:'Leave me Frobless'}" name="frobbed" value="%{frobbed}"></s:radio>
此致
答案 2 :(得分:1)
通常,<s:radio>
标记与选项列表(或地图)一起使用。例如,使用地图,键将是无线电值(在本例中为Boolean.TRUE
和Boolean.FALSE
),值将是单选按钮标签(“Frob away”,“我选择保持冷漠“)。
<s:radio list="yesNo" name="frobbed"/>
yesNo
属性值是列表或地图。
(使用列表,您将公开带有标签和值的对象,并使用“listKey”和“listValue”<s:radio>
属性。(IIRC))