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

Spring mvc之提交表单

2015-10-22 16:36 239 查看
表单内容:

<body>
<form action="user/login">
<table>
<tr>
<td>用户名:</td>
<td><input type="text" name="userName" />
</td>
<td>密码:</td>
<td><input type="password" name="passWord" />
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="login" name="login" /></td>
</tr>

</table>

</form>
</body>


from标签如果没有定义method类型,默认是get, 今天配置mvc出现的问题是在jsp页面传过去的参数,获取它的值时如果是中文会出现乱码,也定义了字符集过滤器,后来才找出这个问题,原来是get请求导致的。

过滤器可以自己写也可以直接使用现有的如:org.springframework.web.filter.CharacterEncodingFilter ,然后再web.xml中添加以下代码:

<!-- filter 字符串过滤器 -->
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>


Controller中的代码:

@RequestMapping("/login")
public String login(@ModelAttribute("user") TUser user) {

try {
TUser temp = userServer.login(user.getUserName, user.getPassWord());
if (temp != null)
return "success";
} catch (Exception ex) {
ex.printStackTrace();
}

return "error";
}


ModelAttribute 是以对象的形式接受Post 过来的表单参数。

另外还有以下方式:

public String login(@RequestParam String username,@RequestParam String password) {
System.out.println("username:"+username+" password"+password);
TUser user=userServer.login(username, password);
if(user!=null)
return "success";
return "error";
}


@RequestParam是请求参数,而且参数名必须是对应的username,password
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: