使用的Struts2有点像购物车的感觉,但是购物车是选定一个商品添加一次,这样实现起来比较简单?现在希望一个添加零件页面下一下列出比如若干条空白栏,其中也许只用到其中一部分。
然后填写完,按一次提交,统一提交上去那相应的action怎么接收页面提交过来的不确定的零件呢?
Strutsweb

解决方案 »

  1.   

    查了一些资料,有几种方法:
    1.使用OGNL表达式....太复杂,一项不喜欢用。比较喜欢简单的EL与jstl
    2.使用Servlet接收同名参数。都用struts2了,还用servlet,岂不是开历史的倒车
    3.使用Action内置数组接收同名参数,然后转包一下。
    如有实体类entity,内有一个name的属性域:
    public class Entity {
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    private String name;
    }
    相应的EntityAction有如下属性域
    class EntityAciton extends ActionSupport {
    private List<Entity> entities = new ArrayList<Entity>();
    private String[] name; @Override
    public String execute() throws Exception {
    // TODO Auto-generated method stub

    for (int i = 0; i < name.length; i++) {
    Entity m = new Entity();
    m.setName(name[i]);
    entities.add(m);
    }

    return SUCCESS;
    }

    public String[] getName() {
    return name;
    } public void setName(String[] name) {
    this.name = name;
    }
    }
    index.jsp有若行name,这边为了简便只写两行
    <tr><td>
    名称:
    </td>
    <td>
    <input type="text" name="name" >
    </td></tr><tr><td>
    名称:
    </td>
    <td>
    <input type="text" name="name" >
    </td></tr>通过index.jsp传递到action中的name数组,然后自己转换成List就可以了。挺方便
      

  2.   


    实际上我就是要一个批量插入功能,在Action端本来是不知道如何批量接收到这部分数据。现在搞定,谢谢关注