【问题标题】:struts2 populate "value" object of map from Form poststruts2 从表单帖子中填充地图的“值”对象
【发布时间】:2013-08-26 09:35:09
【问题描述】:

我正在使用 struts 2。我有一个包含一些布尔值的对象。我有一个 HashMap,其中包含许多以前由某个键定义的对象。

在我的 jsp 中,表格中填充了单选按钮。地图的每个键对应一行等。 当我发回表单时,我想保存用户设置的选项。但地图似乎没有人满。

我的代码是这样的:

   MyObject ( with two boolean parameters )

    private Map<String, MyObject> ... (with getter & setter ).

在我的jsp中生成的html是:

    <input type="radio" name="myMap[123].booleanParameter1" id="someId" 
checked="checked" value="true">

etc 

有人可以帮忙设置单选按钮的“名称”,以便 struts 可以填充地图吗?


public class MyObject implements Serializable{

    private Boolean booleanParameter1;
    private Boolean booleanParameter2;

getters & setters here
}

Map<String,MyObject> myMap ... in Action

JSP...

 <s:iterator ...iterates default map values>

 <s:radio label="parameter1" name="myMap['%{key}'].booleanParameter1" list="#{'true':'Yes','false':'No'}" value="%{value.booleanParameter1}" />
<s:radio label="parameter2" name="myMap['%{key}'].booleanParameter2" list="#{'true':'Yes','false':'No'}" value="%{value.booleanParameter2}" />

</s:iterator>

【问题讨论】:

  • 您的密钥 123 不是字符串。
  • 执行操作时没有填充它吗?
  • 应该是myMap['123'].booleanParameter1
  • @AleksandrM 首先,123 也可以是字符串 :)。其次,我尝试了 myMap['123'].booleanParameter1 仍然没有用。还有什么建议吗?
  • 您并没有指出这是一个字符串。显示您的 MyObject 类和 JSP 表单。

标签: java jsp map struts2 ognl


【解决方案1】:

找到解决方案。 “MyObject”类没有默认构造函数。 Struts/ognl 需要默认构造函数来创建对象。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多