Spring mvc頁面表單提交獲取數據后台接收參數實現


1.新建一個web工程,搭建好Springmvc運行環境

2.新建兩個頁面(提交頁面,成功頁面)如下:

     2.1form 頁面

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10     <!-- 提交路徑 -->
11     <form action="${pageContext.request.contextPath}/controller2/form"
12         method="post" accept-charset="UTF-8">
13         <table>
14             <tr>
15                 <td>用戶名:</td>
16                 <td><input type="text" name="userName"></td>
17             </tr>
18             <tr>
19                 <td>密碼:</td>
20                 <td><input type="password" name="userPwd"></td>
21             </tr>
22             <tr>
23                 <td><input type="submit" value="登陸"></td>
24             </tr>
25         </table>
26     </form>
27 </body>
28 </html>

   success頁面

 1 <%@ page language="java" contentType="text/html; charset=utf-8"
 2     pageEncoding="utf-8"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10 form page is success
11 </body>
12 </html>

 

  2.1、直接把表單的參數寫在Controller相應的方法的形參中  

    (控制器中方法的形參String userName,String userPwd名稱必須和登陸頁面的name="userName",name="userPwd"相同)

  

 1 package com.springmvc.tranfercontroller;
 2 
 3 import org.springframework.stereotype.Controller;
 4 import org.springframework.web.bind.annotation.RequestMapping;
 5 
 6 /**
 7  * 基於注解帶參數傳輸案例
 8  * 
 9  * @author Administrator
10  *
11  */
12 @Controller
13 @RequestMapping(value = "/controller2")
14 public class TranferController2 {
15     // 成功提交跳轉對應的方法
16     @RequestMapping(value = "/form")
17     public String 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     public String form() {
26         return "form";
27     }
28 }

 

    2.2通過HttpServletRequest接收

(控制器中String userName=request.getParameter("userName");String userPwd=request.getParameter("userPwd");的參數名稱必須和登陸頁面的name="userName",name="userPwd"相同)

 1 @Controller
 2     @RequestMapping("/controller2")
 3     public class TranferController2 {
 4         @RequestMapping("/form")
 5         public String 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部分設置

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.測試結果(注意訪問路徑不同)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM