Struts2中jsp的form值如何映射为Action中的List<Map<String,String>>对象?
现在有一个需求:利用Struts2的特性,将页面的from表单中的值直接映射成为List<Map<String,String>>对象
已知可以实现的有List<Object>,Map<String,String>,但是List<Map<String,String>>就是实现不了
写法如下:
/**Action中定义的对象**/ private Map<String, String> map; private List<String> list; private List<Map<String, String>> listMap;
<!-- jsp页面中的form --> <!-- 这样可以直接映射到map对象中 --> 姓名:<input type="text" name="map['name']"/></br> 年龄:<input type="text" name="map['age']"/></br> <!-- 这样可以直接映射到list对象中 --> 爱好:<input type="text" name="list" /><input type="text" name="list" /><input type="text" name="list" /></br>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
我这里来补充完整吧,搞了一上午,要自定义一个map,如
public class MyMap<K, V> extends LinkedHashMap {}
然后action中:private List<MyMap<String, Object>> paramList; set /get 省略
页面:
name="paramList[0].COL_NO"
name="paramList[1].COL_NO"
xwork-conversion.properties 配置(必需放在全局配置里):
com.more.mes.common.model.dto.MyMap=com.more.mes.common.method.ListMapTypeConverter
终于可以了,多层嵌套的对象需要在全局转换器里定义转换类
自定义类型转换不成功,似乎对于list都没进入自定义转换的流程,不知道是哪里写错了,求解
我目前试着是只能用bean,不能用map
同问,我也碰到这个问题,是在做编辑数据的时候会用到,我想先在页面上添加多条数据,然后一次性提交到后台执行插入,类似这样:
后台通过List<Map<String,String>>进行接收,可是收不到。。。
至于为什么要用Map<String, String>而不用具体的bean,是因为还想将这个过程做成通用的类,打算接收后再转给具体的类执行解析和插入
目前考虑可能会使用到自定义解析的方式来做
你举个listmap的例子.额.什么情况表单还有这种形式的额 ...我是没见过..
你要直接赋值给list里面的map?额...这个...疯了.
但是List<Map<String,String>>页面可以用OGNL操作,我觉得理论上form可以映射值