spring mvc中的一个controller中的一个方法,在User和Custom类中都有username属性,那么我怎么能在提交的请求中来指定只给user的username传值?public void sayTo4(@ModelAttribute("user") User user,@ModelAttribute("custom") Custom custom)
{
System.out.println("username: " + user.getUsername() + " custom.username: " + custom.getUsername());
}在线急等
string name;
...
}class Custom{
string name;
...
}有上面二个类,都有name属性Controllervoid hello(@ModelAttribute("user") User user,@ModelAttribute("custom") Custom custom)
{
System.out.println("user.name: " + user.getName());
System.out.println("custom.name: " + custom.getName());
}一个表单中提交信息
<form>
<input type="text" name="????"/>
</form>表单中问号部分应该写什么?
如果写name,那么controller中的user和costom中的name属性都会被同时赋值。问题该如何编写这个表单,使得传给controller,只让其中user类的name被赋值。不知道这次描述的得清楚。谢谢,在线等。
<input type="text" name="user.name"/>
</form>
首先谢谢回答,但似乎与struts2是不一样的。至今无解。
private User user;
get和set方法...
修改spring配置文件
<form>
<input type="text" name="user.name"/>
</form>
public class User {
private Long id; public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
}
}Custom.java
public class Custom {
private Long id; public Long getId() {
return id;
} public void setId(Long id) {
this.id = id;
}
}Controller.java
@RequestMapping(value="test1")
public String test2(@ModelAttribute("user") User user,@ModelAttribute("user2") User user2,HttpServletRequest request){
System.out.println("user.id: " + user.getId());
System.out.println(request.getParameter("user.id"));
return "test";
}如果访问:http://localhost:8080/ssh/test1.htm?id=57
会打印
user.id: 57 custom.id: 57
request.user.id: nullrequest.custom.id: null
可以user和custom的id同时被赋值了,按上面朋友说的方法。访问:http://localhost:8080/ssh/test1.htm?user.id=57&custom.id=58
会打印
user.id: null custom.id: null
request.user.id: 57request.custom.id: 58
没有绑定上,而是被request.getParameter这个方法得到了值。
希望在不改属性名的前提下,可以打印出
user.id:57 custom.id:58
@RequestMapping(value="test1")
public void test2(@ModelAttribute User user,@ModelAttribute Custom custom,HttpServletRequest request){
System.out.println("user.id: " + user.getId() + " custom.id: " + custom.getId());
System.out.println("request.user.id: " + request.getParameter("user.id")
+ "request.custom.id: " + request.getParameter("custom.id"));
}
在线等解决呀
我16楼和17楼只是给了简单的例子,在User和Custom类中实际都有name这个属性,我要在一个表单提交中,同
时给user的name和custom的name赋上不同的值。
<input type="text" name="user1" />
<input type="text" name="user2" />
后台使用request
user.setUsername(request.getParameter("user1"))
custom.setUsername(request.getParameter("user1"))