Springmvc 传递参数

      今天遇到一个问题,之前一直用spring+struts+ibaits框架,在jsp页面中有个form表单。比如:有个input标签 。它的name是对象.属性。那么,我们在后台只要给这个对象或者是这个对象的属性设置getter、setter方法就ok了。

      但是springmvc中,无论我怎么设置都是没用。最后终于找到了解决办法。

  1. 现在我有个实体对象
private String U_PASSWORD;

private String U_NAME;

private String U_QQ;

private String U_EMAIL;

/////////////////////////////////////////////////////////////////////////
//getter、setter method 
   .        .
   .        .
   .        .

2.springmvc contorller
参数里面加上@ModelAttribute User user

@RequestMapping("/reg")
    public String reg(@ModelAttribute User user ,HttpServletRequest request,Model model)
    {
        System.out.println(user.getU_NAME()); //得到传过来的U_NAME
        System.out.println(user.getU_EMAIL());//得到传过来的U_EMAIL
        System.out.println(user.getU_PASSWORD());//得到传过来的U_PWD

        this.userService.reg(user); //注册
        model.addAttribute("user",user);
        return "/sys/user/user_login"; //页面跳转
    }
    //初始化绑定user(很重要)
    @InitBinder("user")    
    public void initBinder1(WebDataBinder binder) {    
            binder.setFieldDefaultPrefix("user.");    
    }   

3.下面是我的user.jsp,通过form表单提交

<form id="reg_form" method="post" action="user/reg" onsubmit="return check();">
        <table>
            <tr>
                <td>手机或邮箱:</td>
                <td>
                    <input name="user.U_EMAIL" id="email" placeholder = "请输入手机号或邮箱"/>
                </td>
            </tr>
            <tr>
                <td>登录密码:</td>
                <td>
                    <input name="user.U_PASSWORD" id="pwd" type="password"/>
                </td>
            </tr>
            <tr>
                <td>确认密码:</td>
                <td>
                    <input name="user.U_PASSWORD" type="password" id="repwd" />
                </td>
            </tr>
            <tr>
                <td>昵称:</td>
                <td>
                    <input name="user.U_NAME" id="nickname"/>
                </td>
            </tr>
            <tr>
                <td>验证码:</td>
                <td>
                    <input name="" id="code" />
                </td>
            </tr>
        </table>
        <input type="submit" value="同意协议并注册"/>
    </form>

4.大家注意上面的jsp页面的input 中都有个user.xxx,这就是对象.属性,后台的user一定要和input name里的属性完全一致,才能在后台controller中初始化绑定到user上。继而得到对象中所有的属性值。




希望对大家有所帮助






你可能感兴趣的:(spring,mvc,form,name,传递参数,对象-属性)