Struts 2 中支持地图的 Actionform 替代方案

2023-12-15

在Struts 1中,我使用了地图支持的行动形式获取动态字段值。

public MyForm extends ActionForm {
    private final Map values = new HashMap();
    public void setValue(String key, Object value) {
       values.put(key, value);
    }
    public Object getValue(String key) {
      return values.get(key);
    }
}

下面是我使用过的代码。

JSP

<form action="/SaveAction.do">
<input type="text" name="value(dynamicNames)" value="some value">
</form>

Action

public class SaveAction extends ActionSupport implements ModelDriven<MyForm> {
    private MyForm myForm = new MyForm(); 
    @Override
    public MyForm getModel() {
            return myForm;
    }
    public void setMyForm(MyForm myForm){
            this.myForm = myForm;
    }
    public MyForm getMyForm(){
            return myForm;
    }
    public String execute(){
            MyForm formData = getMyForm();//Here I am getting empty object.
            return "SUCCESS";
    }
}

Form

public MyForm {
    private final Map values = new HashMap();
    public void setValue(String key, Object value) {
       values.put(key, value);
    }
    public Object getValue(String key) {
      return values.get(key);
    }
}

如何在Struts 2中实现相同的功能?


您可以将地图直接放入操作类,并在 JSP 中使用 Struts2 标签来提交/获取值。

Action

public class SaveAction extends ActionSupport {
    private Map<String, Object> map; 

    public String execute(){
      // do something with map
      return SUCCESS;
    }

    // getter/setter for map
}

JSP

<s:form action="saveAction">
  <s:textfield name="map['somekey']" />
  <s:submit />
</s:form>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Struts 2 中支持地图的 Actionform 替代方案 的相关文章

随机推荐