【问题标题】:How to bind a boolean bean property with radio button in Struts 2如何在 Struts 2 中将布尔 bean 属性与单选按钮绑定
【发布时间】:2017-05-28 10:26:09
【问题描述】:

我有一个后端 POJO(比如 MyBean),其中包含一个布尔属性 Boolean isValid

我正在填充 MyBean 列表以显示在 JSP 上。

现在我想在每个 MyBean 旁边有一个单选按钮,以便用户可以选择其中任何一个作为有效 bean。

我不希望收音机在预定义的值列表中进行选择(因为lists:radio 中的强制属性)。

有人可以建议如何实现吗?

【问题讨论】:

    标签: jsp struts2 boolean ognl


    【解决方案1】:

    布尔属性应该有一个getter

    public Boolean isValid() { return this.isValid; }
    

    返回列表后,您可以使用 OGNL 投影仅过滤 isValid 值。或者如果你使用listkeylistValue 属性,你根本不需要它。

    查看 Struts 文档中的示例:

    在此示例中,显示带有性别列表的单选控件。 性别列表是从属性id=genders 构建的。框架 调用getGenders() 将返回Map

    有关使用listKeylistValue 属性的示例,请参阅部分选择标记。 默认选择一个将由getMale() 方法确定(在这种情况下) 在动作类中,它应该返回一个类似于键的值 getGenders() 映射,如果要选择该特定性别。

    <s:action name="GenderMap" var="genders"/>
    <s:radio label="Gender" name="male" list="#genders.genders"/>
    <@s.radio name="car" list={"ford": "Ford Motor Co", "toyota": "Toyota"} listKey="key" listValue="value" />
    

    【讨论】:

    • 感谢您的回复!但我已经尝试过了。这个收音机(在迭代器下)只有在它们的“名称”相同时才能工作。但是我不能为所有 bean 保持相同的名称,因为在提交页面时使用了这个“名称”(每个无线电必须映射到后端中的任何特定 bean,而它们在前端有“只有一个选择”关系。
    猜你喜欢
    • 1970-01-01
    • 2016-09-30
    • 1970-01-01
    • 2016-11-01
    • 2014-08-16
    • 1970-01-01
    • 2011-02-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多