我在后台Action中有:
public class Test{
    private List<Map< String,String>> list;
    public void setList( List<Map< String,String>> list){
         this.list=list;
    }
    public  List<Map< String,String>> getList(){
         return this.list;
    }
}
在JSP页面有
 <from ...>
      <input >
      <input >
      <input>
</from>
以上是简化了的一个表单...项目中有点复杂
关键点是---怎么在form表单中把用户输入的值通过list传到后台Action中去
list中的map的作用是:我想通过键值对的方式,将用户输入的值一一对应起来
比如map的key就是input的name或者什么的...
请教高手这个怎么做啊...

解决方案 »

  1.   

    这个没有用list<Person>方便(list中存放的是对象),比如person,而person中有多个属性例如name,age等。
      

  2.   

    但是,这个person的属性是固定的...而我的那个属性是动态改变的...可能一个,可能是N个....
      

  3.   

    前台往后台传送的数据都是字符串形式的,不能传送list,map等集合啊,既然是表单提交,直接在后台获取就行了吧,为什么要用map呢,map中保存了input的name有什么意义么,我觉得完全没有这个必要。你是想用action返回给页面一个map集合,根据这个map的key找到要改变的节点么?如果是这样的话,完全可以不用map,需要操作的节点,你直接在前台用dom获取就可以了。你说你要的person属性是可以动态改变的,你的意思是不是,用户可以不选择非必选的内容,从而导致有些属性不存在呢,要是这样的话,你应在person中定义好所有可能出现的属性,没有从表单中获取到的自然就是空了。
      

  4.   

    给出的那个表单只是一个简单的列子...实际是非常复杂的...和他人已经讨论过..只有通过list<map<String,String>>..将他们的值一一传回给action中,若果这样能够做到..那么问题就变得简单了,若果不能就只有想其他的法子了
    其中:
    list中的每一个map就对应了数据库中的一个table,
    该map中得每个key就对应了该table中的每个cloumn,
    每个value,就对应了该column的值
    初始时每个input有初始值,用户可能修改...
      

  5.   

    看下struts2 showcase中的 action conversion吧。应该有点帮助。例子中一般给的都是设置Element_[action属性名]=某一实体bean,你可以具体查看及测试下是否可以设置成为map.
    比如针对你的代码一般是:TestAction.class
     List<TestBean> nTs ;
     //set/get忽略
    TestAction_conversion..properties
    Element_nTs = com.test.TestBean; //这里你可测试下,看是否可以设置成你要的那种。jsp:<s:iterator values status='sta'>
    <s:textfield name="%{'nTs ['+#stat.index+'].attrName'}" />
    </s:iterator>或者使用js动态生成输入框。
      

  6.   

    你是说前台提交的表单,需要涉及到很多表的修改,你要把这些数据在从前台拿过来之前就对应好,后台直接作相应的处理,不知道理解的对不对。我的意思是,你应该清楚地知道,你从后台拿到的哪些数据要存入哪张表吧,你也应该清楚地知道,要把哪些数据存入哪些字段吧,有必要把这种关系写入map里么。
      

  7.   

    实现接口,把值保存在对象request,session,application中都可以,在后台就可以取出来
      

  8.   

    具体在后台哪些表需要存数据,这个也是不可预知的,整个数据库也是在用户使用过程中动态生成,用户能够通过导入某种XML文件,程序通过解析XML,自动生成数据库表...所以才有了前面的需要必须知道用户是操作的哪个表的哪个字段的数据,才有了前面的List<Map<String,String>>  map中key是字段名,value是对应的数据,表名可以另外想办法...
      

  9.   

    我用的是struts1,我只做过这种情况的,就是action中是List<对象>details,而页面上处理比如
    <html:hidden property="details[${i}].salaryStandardId" value="${g.salaryStandardId}"/>