struts2 jsp传list参数到action中的问题

duiduiaa 2010-03-31 10:24:12
jsp 页面
<s:iterator id="pointDTO" value="pointList" status="count">
<s:hidden name="pointList[%{count.index}].pointCode">
<s:hidden name="pointList[%{count.index}].pointName">
<s:iterator id="dataSourceDTO" value="#pointDTO.dataSourceList" status="c">
<s:hidden name="pointList[%{count.index}].dataSourceList[%{c.index}].pointName">
</s:iterator>

</s:iterator>

pointDTO dataSourceDTO 分别为两个dto
在pointDTO中有一个属性是List<DataSourceDTO> dataSourceList; 有get和set方法

我再struts2的后台可以直接得到List<PointDTO> pointList这个参数 PointDTO有String pointCode,String pointName
和List<DataSourceDTO> dataSourceList 值 并且dataSourceList中还有dataSourceDTO的相关属性

问题是:我再对pointDTO 和dataSOurceDTO分别都重写了 equals和hasCode的方法后,在action中的pointList中我只能得到
PointDTO的pointCode,pointName属性,而dataSourceList为空

哪位高手知道为什么 怎么解决?
struts2 jsp往action中传递List的原理是什么?

怀疑 是struts将form中参数都放在map中 构造成List hashCode产生冲突
...全文
984 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
duiduiaa 2010-04-02
  • 打赏
  • 举报
回复
你说的是struts1的?是struts2吗 ? struts2是用valueStack吧
华夏勇者 2010-04-02
  • 打赏
  • 举报
回复
在Action 提交后,每个action会实例一个ActionContext对象。ActionContext是Action执行时的上下文,上下文可以看作是一个容器(其实我们这里的容器就是一个Map而已),它存放的是Action在执行时需要用到的对象 要获取rerquest可以以如下方式获取 Map request = (Map) ActionContext.getContext().get("request");
表达在提交list pojo必须有一个属性定义的是list类才接受传过来的值 表单提交的所有数据都会通过转换器转换成String类型提交到后台,后台接收到的数据都是String 包括list中放的也是String类型
duiduiaa 2010-04-02
  • 打赏
  • 举报
回复
没有人会吗
tcsnzsa 2010-04-01
  • 打赏
  • 举报
回复
这个问题很有深度,支持你的怀疑。
建议调整一下hashCode方法,测试一下
amos1989 2010-04-01
  • 打赏
  • 举报
回复
结帐率0.0%
懒得鸟你....没人品的人坚持不帮..
duiduiaa 2010-04-01
  • 打赏
  • 举报
回复
顶!!!!!!!!!!!!!!!!!!!!!!!!!!!!
duiduiaa 2010-03-31
  • 打赏
  • 举报
回复
咋就没人帮我解决问题呢 第一次发帖

67,547

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧