struts2 如何从页面 向Action中的Map>中传值

charmw 2010-07-30 01:51:25

会报这样的错误:
ognl.OgnlException: source is null for getProperty(null, "0")
.
.
.
请问如何解决

public class TestAction extends ActionSupport {
private Map<Integer, List<User>> milu;

/**
* @return the milu
*/
public Map<Integer, List<User>> getMilu() {
return milu;
}

/**
* @param milu the milu to set
*/
public void setMilu(Map<Integer, List<User>> milu) {
this.milu = milu;
}}




<s:textfield name="milu[1][0].name" value="张" theme="simple"/>
<s:textfield name="milu[1][1].name" value="李" theme="simple"/>
<s:textfield name="milu[2][0].name" value="王" theme="simple"/>
.
.
.
...全文
355 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jianghongzhe 2011-09-02
  • 打赏
  • 举报
回复
楼主有答案了吗?我非常非常想知道是怎么解决的
sum_snow 2011-09-02
  • 打赏
  • 举报
回复
楼主有答案了吗?我非常非常想知道是怎么解决的
charmw 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 redlotus_lyn 的回复:]
为什么要定义成 private Map<Integer, List<User>> milu;

定义成private Map<Integer, User> milu;不行吗?

如果定义private Map<Integer, User> milu;


<s:textfield name="milu['0'].name" value="张" theme="simple"/>
[/Quote]

因为 一个key对应多个user
redlotus_lyn 2010-07-30
  • 打赏
  • 举报
回复
为什么要定义成 private Map<Integer, List<User>> milu;

定义成private Map<Integer, User> milu;不行吗?

如果定义private Map<Integer, User> milu;


<s:textfield name="milu['0'].name" value="张" theme="simple"/>
charmw 2010-07-30
  • 打赏
  • 举报
回复
不行呀,接收不到呀
redlotus_lyn 2010-07-30
  • 打赏
  • 举报
回复
<s:textfield name="milu['1']['0'].name" value="张" theme="simple"/>
小李飞刀 2010-07-30
  • 打赏
  • 举报
回复
Struts2支持任意类型的Map键值,当Map键类型为Integer,OGNL需要使用字符形式,正确写法是:
<s:textfield name="milu['1']['milu'].name" value="张" theme="simple"/>
charmw 2010-07-30
  • 打赏
  • 举报
回复
我debug看提交的action,好像Map识别,List也能识别,但是User识别成了List
{1=[[],[]...],2=[[],[]...],...}
郁闷
charmw 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 avyp 的回复:]
正确的写法应该是:
<s:textfield name="milu['1'][0].name" value="张" theme="simple"/>


引用 1 楼 avyp 的回复:
Struts2支持任意类型的Map键值,当Map键类型为Integer,OGNL需要使用字符形式,正确写法是:
<s:textfield name="milu['1']['milu'].name" v……
[/Quote]
这个也试过
小李飞刀 2010-07-30
  • 打赏
  • 举报
回复
正确的写法应该是:
<s:textfield name="milu['1'][0].name" value="张" theme="simple"/>

[Quote=引用 1 楼 avyp 的回复:]
Struts2支持任意类型的Map键值,当Map键类型为Integer,OGNL需要使用字符形式,正确写法是:
<s:textfield name="milu['1']['milu'].name" value="张" theme="simple"/>
[/Quote]

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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