Spring MVC 從頁面向Controller傳遞參數的方式


Spring MVC從頁面向Controller傳值的方式

 

    驗證代碼:https://files.cnblogs.com/files/peiyangjun/20180104_springMVC_easyui.zip 

    從頁面向Controller 傳值的方式有很多,本文整理出常用的從頁面向Controller傳值的幾種方式:

 1、通過HttpServletRequest 向后台傳遞數據

     頁面程序如下:

    <h2>利用HttpServletRequest傳數據</h2>
    <form action="loginToJson">
        用戶名:<input name="name" /> 密碼:<input name="pass" /> <input
            type="submit" value="登陸">
    </form>
View Code

    后台程序段如下:

    
    @ResponseBody

    @RequestMapping(value="/loginToJson",method=RequestMethod.POST)

    public String loginToJson(HttpServletRequest request) {

       User user = new User();

       user.setUserName(request.getParameter("name"));

       user.setPassword(request.getParameter("pass"));

       return JSON.toJSONString(user);

    }
View Code

2、通過參數向Controller傳遞值

  前台程序如下:

    
    <h2>利用函數參數傳數據</h2>

    <form action="loginByVariable" method="post">

         用戶名:<input name="name" /> 密碼:<input name="pass" />

         <input type="submit" value="登陸">

    </form>
View Code

  后台程序如下:

    
   @RequestMapping(value="/loginByVariable",method=RequestMethod.POST)

     public String loginToSession(HttpServletRequest request,ModelMap map,String name,String pass) {

          User user = new User();

          user.setUserName(name);

          user.setPassword(pass);

          map.put("user", user);

          System.out.println(user);

          return "mySession";

     }
View Code

        注意:前台<input name="name" />中的name屬性的值,必須和后台函數參數中的String name中的形參名一致,否則從后台取不到值。

3、利用函數參數,對象傳遞值到Controller

    前置條件,對象的定義代碼:

    注意這里,User對象的屬性名為userName和password,並有getter和setter屬性

 

     public class User{
    
    @Override
    public String toString() {
        return "User [userName=" + userName + ", password=" + password + "]";
    }
    public String getUserName() {
        return userName;
    }
    public void setUserName(String userName) {
        this.userName = userName;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    private String userName;
    private String password;
}
View Code

 

    前台程序如下:

    注意:userNamepassword必須和對象屬性名稱一致。

    
     <h2>利用函數參數對象傳數據</h2>

     <form action="loginByObject" method="post">

          用戶名:<input name="userName" /> 密碼:<input name="password" /> <input

               type="submit" value="登陸">

</form>
View Code

    后台程序如下:

     
      @RequestMapping(value="/loginByObject",method=RequestMethod.POST)

      public String loginToSession(ModelMap map,User user) {

            User user1 = new User();

            user1.setUserName(user.getUserName());

            user1.setPassword(user.getPassword());

            System.out.println(user1+" Object");

            map.put("user", user1);

            return "mySession";

      }

 
View Code

 

4、利用函數參數@RequestParam參數傳遞據

       前台代碼如下:

         
     <br>

     <h2>利用函數參數@RequestParam參數傳遞據</h2>

     <form action="loginByRequestParm" method="post">

          用戶名:<input name="name" /> 密碼:<input name="pass" /> <input

               type="submit" value="登陸">

     </form>
View Code

           后台程序如下:       

         
 @RequestMapping(value="/loginByRequestParm",method=RequestMethod.POST)

         public String loginToSessiona(HttpServletRequest request,ModelMap map,

               @RequestParam("name") String UserName,@RequestParam String pass) {

          User user = new User();

          user.setUserName(UserName);

          user.setPassword(pass);

          map.put("user", user);

          System.out.println(user+"requestParam");

          return "mySession";

     }
View Code

注意:@RequestParam("name")中如果有參數,name必須為頁面中屬性的值,如果沒有參數,則參數名,必須和頁面中屬性的值相同,如頁面中pass,則在@RequestParam中,則可以不指定參數,但形參的名字必須為pass

5、   通過URL傳遞參數  @PathVariable

           具體代碼如下:   

      
@Controller  
public class TestController {  
     @RequestMapping(value="/user/{userId}/roles/{roleId}",method = RequestMethod.GET)  
     public String getLogin(@PathVariable("userId") String userId,  
         @PathVariable("roleId") String roleId){  
         System.out.println("User Id : " + userId);  
         System.out.println("Role Id : " + roleId);  
         return "hello";  
     }  
     @RequestMapping(value="/product/{productId}",method = RequestMethod.GET)  
     public String getProduct(@PathVariable("productId") String productId){  
           System.out.println("Product Id : " + productId);  
           return "hello";  
     }  
     @RequestMapping(value="/javabeat/{regexp1:[a-z-]+}",  
           method = RequestMethod.GET)  
     public String getRegExp(@PathVariable("regexp1") String regexp1){  
           System.out.println("URI Part 1 : " + regexp1);  
           return "hello";  
     }  
}
View Code

 

 


免責聲明!

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



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