您的位置:首页 > 编程语言 > Java开发

Springmvc 传递参数

2015-08-28 16:48 281 查看

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

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

现在我有个实体对象

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上。继而得到对象中所有的属性值。

希望对大家有所帮助
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息