1.新建一个web工程,搭建好Springmvc运行环境
2.新建两个页面(提交页面,成功页面)如下:
2.1form 页面
1
2 pageEncoding="utf-8"%>
3
4
5
6
7
Insert title here8
9
10
11
12 method="post"accept-charset="UTF-8">
13
14
15
用户名:16
17
18
19
密码:20
21
22
23
24
25
26
27
28
success页面
1
2 pageEncoding="utf-8"%>
3
4
5
6
7
Insert title here8
9
10 form page is success11
12
2.1、直接把表单的参数写在Controller相应的方法的形参中
(控制器中方法的形参String userName,String userPwd名称必须和登陆页面的name="userName",name="userPwd"相同)
1 packagecom.springmvc.tranfercontroller;2
3 importorg.springframework.stereotype.Controller;4 importorg.springframework.web.bind.annotation.RequestMapping;5
6 /**
7 * 基于注解带参数传输案例8 *9 *@authorAdministrator10 *11 */
12 @Controller13 @RequestMapping(value = "/controller2")14 public classTranferController2 {15 //成功提交跳转对应的方法
16 @RequestMapping(value = "/form")17 publicString form(String userName, Integer userPwd) {18 System.out.println("用户名:" + userName + "用户密码:" +userPwd);19 System.out.println("println login of controller");20 return "success";21 }22
23 //访问页面路径对应的方法
24 @RequestMapping(value = "/form2")25 publicString form() {26 return "form";27 }28 }
2.2通过HttpServletRequest接收
(控制器中String userName=request.getParameter("userName");String userPwd=request.getParameter("userPwd");的参数名称必须和登陆页面的name="userName",name="userPwd"相同)
1 @Controller2 @RequestMapping("/controller2")3 public classTranferController2 {4 @RequestMapping("/form")5 publicString form(HttpServletRequest request) {6 String userName=request.getParameter("userName");7 String userPwd=request.getParameter("userPwd");8 System.out.println("用户名:" + userName + "用户密码:" +userPwd);9 System.out.println("println login of controller");10 return "success";11 }12 }
3.在web项目中经常会提交表单,偶尔会遇到表单中文参数乱码
如:
3.1、在html中head部分设置
3.2、在form标签中增加:
以上两种方式都试了一下,问题还是不能解决。
在web.xml文件中增加如下代码:
encodingFilter
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
forceEncoding
true
encodingFilter
/*
4.测试结果(注意访问路径不同)