Spring mvc页面表单提交获取数据后台接收参数实现
1.新建一个web工程,搭建好Springmvc运行环境
2.新建两个页面(提交页面,成功页面)如下:
2.1form 页面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> <!-- 提交路径 --> <form action="${pageContext.request.contextPath}/controller2/form" method="post" accept-charset="UTF-8"> <table> <tr> <td>用户名:</td> <td><input type="text" name="userName"></td> </tr> <tr> <td>密码:</td> <td><input type="password" name="userPwd"></td> </tr> <tr> <td><input type="submit" value="登陆"></td> </tr> </table> </form> </body> </html>
success页面
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Insert title here</title> </head> <body> form page is success </body> </html>
2.1、直接把表单的参数写在Controller相应的方法的形参中
(控制器中方法的形参String userName,String userPwd名称必须和登陆页面的name="userName",name="userPwd"相同)
package com.springmvc.tranfercontroller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; /** * 基于注解带参数传输案例 * * @author Administrator * */ @Controller @RequestMapping(value = "/controller2") public class TranferController2 { // 成功提交跳转对应的方法 @RequestMapping(value = "/form") public String form(String userName, Integer userPwd) { System.out.println("用户名:" + userName + "用户密码:" + userPwd); System.out.println("println login of controller"); return "success"; } // 访问页面路径对应的方法 @RequestMapping(value = "/form2") public String form() { return "form"; } }
2.2通过HttpServletRequest接收
(控制器中String userName=request.getParameter("userName");String userPwd=request.getParameter("userPwd");的参数名称必须和登陆页面的name="userName",name="userPwd"相同)
@Controller @RequestMapping("/controller2") public class TranferController2 { @RequestMapping("/form") public String form(HttpServletRequest request) { String userName=request.getParameter("userName"); String userPwd=request.getParameter("userPwd"); System.out.println("用户名:" + userName + "用户密码:" + userPwd); System.out.println("println login of controller"); return "success"; } }
3.在web项目中经常会提交表单,偶尔会遇到表单中文参数乱码
如:
3.1、在html中head部分设置
1 | < meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> |
3.2、在form标签中增加:
1 | < form method="post" action="#" accept-charset="UTF-8"> |
以上两种方式都试了一下,问题还是不能解决。
在web.xml文件中增加如下代码:
<filter> <filter-name>encodingFilter</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> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
4.测试结果(注意访问路径不同)
相关推荐
learningever 2020-09-19
nercon 2020-07-26
运维工程师日记 2020-07-19
haohong 2020-07-18
dadaooxx 2020-07-04
行吟阁 2020-06-26
dadaooxx 2020-06-13
qsdnet我想学编程 2020-06-09
pythonclass 2020-06-07
pythonclass 2020-06-04
WebVincent 2020-06-03
niehanmin 2020-05-28
pythonclass 2020-05-09
gufudhn 2020-04-30
行吟阁 2020-04-18
swiftwwj 2020-03-08
nercon 2020-03-03
玫瑰小妖 2020-02-24