struts2封装表单数据(对象的对象的属性)到Action对象 5
表单页面<formaction="testRecord"method="post"><inputname="records.user.age"value="1"/><in...
表单页面
<form action="testRecord" method="post">
<input name="records.user.age" value="1"/>
<input name="records.detail" value="哈哈"/>
<input name="records.user.age" value="2"/>
<input name="records.detail" value="呵呵"/>
<input type="submit" value="提交"/>
</form>
User类属性:
private Integer age;
Record类属性:
private Integer id;
private User user; //这里使用User对象作为属性
private String detail;
Action页面
private List<Record> records=new ArrayList<Record>();
注:getter和setter方法都设置好了的,那2个类的无参构造方法也设置了
测试:
1、把 <input name="records.user.age" />这2行去掉,程序正常,Action中的 Record集合的每个Record对象的detail属性都有值
2、不把 <input name="records.user.age" />这2行去掉,程序报错,显示Record对象的user属性为空,无法把age的属性值赋值到user中
问题:为什么Action封装数据时遇到Record对象的属性时就会自动创建Record对象,并把其对应的属性值赋值到Record对象中,但是遇到Record对象的属性User对象的属性时不会自动创建User对象,我想在Action的records集合中也能获取Record对象的User对象的age,那该怎么做?
问题自己搞定了,表单页面改成
<form action="testRecord" method="post">
<input name="records[0].user.age" value="1"/>
<input name="records[0].detail" value="哈哈"/>
<input name="records[1].user.age" value="2"/>
<input name="records[1].detail" value="呵呵"/>
<input type="submit" value="提交"/>
</form> 展开
<form action="testRecord" method="post">
<input name="records.user.age" value="1"/>
<input name="records.detail" value="哈哈"/>
<input name="records.user.age" value="2"/>
<input name="records.detail" value="呵呵"/>
<input type="submit" value="提交"/>
</form>
User类属性:
private Integer age;
Record类属性:
private Integer id;
private User user; //这里使用User对象作为属性
private String detail;
Action页面
private List<Record> records=new ArrayList<Record>();
注:getter和setter方法都设置好了的,那2个类的无参构造方法也设置了
测试:
1、把 <input name="records.user.age" />这2行去掉,程序正常,Action中的 Record集合的每个Record对象的detail属性都有值
2、不把 <input name="records.user.age" />这2行去掉,程序报错,显示Record对象的user属性为空,无法把age的属性值赋值到user中
问题:为什么Action封装数据时遇到Record对象的属性时就会自动创建Record对象,并把其对应的属性值赋值到Record对象中,但是遇到Record对象的属性User对象的属性时不会自动创建User对象,我想在Action的records集合中也能获取Record对象的User对象的age,那该怎么做?
问题自己搞定了,表单页面改成
<form action="testRecord" method="post">
<input name="records[0].user.age" value="1"/>
<input name="records[0].detail" value="哈哈"/>
<input name="records[1].user.age" value="2"/>
<input name="records[1].detail" value="呵呵"/>
<input type="submit" value="提交"/>
</form> 展开
1个回答
2014-03-02
展开全部
初始化action时,给user赋值,在execute里面。
不然页面上要判断user是否null
不然页面上要判断user是否null
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询