1、前端传递参数
<form action="${pageContext.request.contextPath}/user/register" method="post"> 姓名:<input type="text" name="name"><br/> 密码:<input type="password" name="password"><br/> 性别:<input type="text" name="sex"><br/> 生日:<input type="text" name="birthday"><br/> 工资:<input type="text" name="salary"><br/> <span> 爱好:</span> 吃饭:<input type="checkbox" name="hobby" value="吃饭"> 睡觉:<input type="checkbox" name="hobby" value="睡觉"> 爱杨福君:<input type="checkbox" name="hobby" value="爱杨福君"> 抽烟:<input type="checkbox" name="hobby" value="抽烟"> 喝酒:<input type="checkbox" name="hobby" value="喝酒"> 烫头发:<input type="checkbox" name="hobby" value=" 烫头发"> <br/> <input type="submit" value="提交"><br/> </form>
注意: 在接收对象类型参数时和struts2接收不同,springmvc直接根据传递参数名与对象中属性名一致自动封装对象
2、后台Controller接收参数
//负责控制层组件对象创建 @Controller("userController") //类上的控制器映射器,相当于Struts2中的namespace @RequestMapping("user") public class UserController{ @RequestMapping("register") public String register(User user, String[] hobby){ System.out.println("注册成功"); System.out.println("姓名:"+user.getName()); System.out.println("密码:"+user.getPassword()); System.out.println("性别:"+user.getSex()); System.out.println("生日:"+user.getBirthday()); System.out.println("工资:"+user.getSalary()); System.out.println("爱好:"); for (String s : hobby) { System.out.println(s); } return "redirect:/index.jsp"; }
3、SpringMVC接收参数中文乱码解决方案
注意:在使用springmvc过程中接收客户端的请求参数时有时会出现中文乱码,这是因为springmvc并没有对象请求参数进行编码控制,如果需要控制需要自行指定
(1)在使用post方式接收请求参数时出现中文乱码接收数据问题解决
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>utf-8</param-value> </init-param> </filter> <filter-mapping> <filter-name>charset</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
(2)在使用set方式中文乱码问题
改tomcat的server.xml配置文件大概在69多行加上URIEncoding="UTF-8"
# 1.针对于GET方式中文乱码解决方案: <Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
成功设置之后,接收到的数据就不会乱码了!