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());
}在线急等

解决方案 »

  1.   

    class User{
       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被赋值。不知道这次描述的得清楚。谢谢,在线等。
      

  2.   

    <form>
      <input type="text" name="user.name"/>
    </form>
      

  3.   


    首先谢谢回答,但似乎与struts2是不一样的。至今无解。
      

  4.   

    不太明白,最简单的方法就是修改custom的name属性名
      

  5.   

    在controller中注入两个类
    private User user;
    get和set方法...
    修改spring配置文件
    <form>
    <input type="text" name="user.name"/>
    </form>
      

  6.   

    User.java
    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
      

  7.   

    上面Contrller粘错了。应该是
    @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"));
    }
    在线等解决呀
      

  8.   

    不知道你的name到底给的是那个类。
      

  9.   


    我16楼和17楼只是给了简单的例子,在User和Custom类中实际都有name这个属性,我要在一个表单提交中,同
    时给user的name和custom的name赋上不同的值。
      

  10.   

    其实我也在找这个问题的解,看来 spring mvc 视图层还不够强大
      

  11.   

    前台用自定义的名称,后台request接收后set进去。
    <input type="text" name="user1" />
    <input type="text" name="user2" />
    后台使用request
    user.setUsername(request.getParameter("user1"))
    custom.setUsername(request.getParameter("user1"))