使用 struts2 和自由标记创建"yes"和"no"单选按钮



在我的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.TRUEBoolean.FALSE),值将是单选按钮标签("Frob away","I choose to remain frobbedless")。

<s:radio list="yesNo" name="frobbed"/>

yesNo属性值为该列表或映射。

(对于列表,您将公开带有标签和值的对象,并使用<s:radio>属性"listKey"one_answers"listValue"。(这个))

最新更新