zoukankan      html  css  js  c++  java
  • 3.学习SpringMVC注解深入

    一.SpringMVC注解:

    1.RequestParam注解:

    其中required属性默认为true(必须得传而且传的名字一样),为false时可以不传。

    编写jsp代码:

     1 <a href="/anno/testRequestParam?name=哈哈">RequestParam</a> 

    编写AnnoController.java的方法:

     1     /**
     2      * RequestParam 页面的请求参数与接收参数不同
     3      * @param username
     4      * @return
     5      */
     6     @RequestMapping("/testRequestParam")
     7     public String testRequestParam(@RequestParam(name = "name") String username){
     8 
     9         System.out.println("执行了...");
    10         System.out.println(username);
    11 
    12         return "success";
    13     }

    2.RequestBody

    编写jsp代码:

    1 <%--对于传输json数据时,获得请求体很重要,对于get请求是没有请求体的--%>
    2 <form action="/anno/testRequestBody" method="post">
    3     用户的姓名:<input type="text" name="username"><br>
    4     用户年龄:<input type="text" name="age"><br>
    5     <input type="submit" value="提交">
    6 </form>

     1     /**
     2      * RequestBody 获取到请求体的内容
     3      * @param body
     4      * @return
     5      */
     6     @RequestMapping("/testRequestBody")
     7     public String testRequestBody(@RequestBody String body){
     8 
     9         System.out.println("执行了...");
    10         System.out.println(body);
    11 
    12         return "success";
    13     }

    3.PathVariable

    编写jsp代码:

     1 <a href="/anno/testPathVariable/10">PathVariable</a> 

    编写方法:

     1     /**
     2      *PathVariable  绑定url中的占位符,使用restful的风格的URL(同样的URL但是不同的请求方式和占位符)
     3      * @param id
     4      * @return
     5      */
     6     @RequestMapping("/testPathVariable/{sid}")
     7     public String testPathVariable(@PathVariable(name = "sid") String id){
     8 
     9         System.out.println("执行了...");
    10         System.out.println(id);
    11 
    12         return "success";
    13     }

    4.RequestHeader

    编写jsp:

     1 <a href="/anno/testRequestHeader">RequestHeader</a> 

    编写方法:

     1     /**
     2      * RequestHeader 获取请求头信息
     3      * @param header
     4      * @return
     5      */
     6     @RequestMapping("/testRequestHeader")
     7     public String testRequestHeader(@RequestHeader(value = "Accept") String header){
     8 
     9         System.out.println("执行了...");
    10         System.out.println(header);
    11 
    12         return "success";
    13     }

    5.CookieValue

    jsp:

     1 <a href="/anno/testCookieValue">CookieValue</a> 

    编写方法:

     1     /**
     2      * CookieValue 获取到Cookie的值
     3      * @param cookieValue
     4      * @return
     5      */
     6     @RequestMapping("/testCookieValue")
     7     public String testCookieValue(@CookieValue(value = "JSESSIONID") String cookieValue){
     8 
     9         System.out.println("执行了...");
    10         System.out.println(cookieValue);
    11 
    12         return "success";
    13     }

    6.ModelAttribute:

    jsp:

    1 <form action="/anno/testModelAttribute1" method="post">
    2     用户的姓名:<input type="text" name="username"><br>
    3     用户年龄:<input type="text" name="age"><br>
    4     <input type="submit" value="提交">
    5 </form>
    • 又返回值的方法:返回给后执行的方法当形参

     1     /**
     2      * ModelAttribute 测试有返回值的方法
     3      * @param user
     4      * @return
     5      */
     6     @RequestMapping("/testModelAttribute1")
     7     public String testModelAttribute1(User user){
     8 
     9         System.out.println("testModelAttribute1执行了...");
    10         System.out.println(user);
    11 
    12         return "success";
    13     }
    14 
    15     /**
    16      * ModelAttribute 该方法会先于其他方法执行,目的是可以获取数据后先一步查询后操作数据库等
    17      * @param uname
    18      * @return
    19      */
    20     @ModelAttribute
    21     public User showUser1(String uname){
    22 
    23         System.out.println("showUser1执行了...");
    24 
    25         //先获得提交的数据进行处理然后传给请求的控制器再进行处理
    26         User user = new User();
    27         user.setUname(uname);
    28         user.setAge(20);
    29         user.setDate(new Date());
    30         return user;
    31     }
    • 无返回值:

     1     /**
     2      * ModelAttribute 测试无返回值的方法
     3      * @param user
     4      * @return
     5      */
     6     @RequestMapping("/testModelAttribute2")
     7     public String testModelAttribute2(@ModelAttribute(value = "abc") User user){
     8 
     9         System.out.println("testModelAttribute2执行了...");
    10         System.out.println(user);
    11 
    12         return "success";
    13     }
    14 
    15     /**
    16      * ModelAttribute 该方法会先于其他方法执行,目的是可以获取数据后先一步查询后操作数据库等
    17      * @param username
    18      * @param map
    19      */
    20     @ModelAttribute
    21     public void showUser2(String username, Map<String,User> map){
    22 
    23         System.out.println("showUser2执行了...");
    24 
    25         //先获得提交的数据进行处理然后传给请求的控制器再进行处理
    26         User user = new User();
    27         user.setUname(username);
    28         user.setAge(20);
    29         user.setDate(new Date());
    30 
    31         map.put("abc",user);
    32     }

    7.SessionAttribute

    jsp:

    1 <a href="/anno/testSessionAttributes">向Session中存入值</a>
    2 <a href="/anno/getSessionAttributes">取出session域值</a>
    3 <a href="/anno/delSessionAttributes">删除session域值</a>

    然后开启EL表达式:

    1 <%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
    1 <body>
    2 入门成功
    3 ${requestScope.msg}
    4 
    5 ${sessionScope}
    6 
    7 </body>

    方法:

     1 /**
     2      * SessionAttributes注解
     3      * @param model
     4      * @return
     5      */
     6     @RequestMapping("/testSessionAttributes")
     7     public String testSessionAttributes(Model model){
     8 
     9         System.out.println("testSessionAttributes...");
    10 
    11         //底层会存储到request域对象中
    12         model.addAttribute("msg","美美");
    13 
    14         return "success";
    15     }
    16 
    17 
    18     /**
    19      * getSessionAttributes 获取Session域
    20      * @param modelMap
    21      * @return
    22      */
    23     @RequestMapping("/getSessionAttributes")
    24     public String getSessionAttributes(ModelMap modelMap){
    25 
    26         System.out.println("getSessionAttributes...");
    27 
    28         String msg = (String) modelMap.get("msg");
    29         System.out.println(msg);
    30         return "success";
    31     }
    32 
    33     /**
    34      * delSessionAttributes 删除session域中值
    35      * @param status
    36      * @return
    37      */
    38     @RequestMapping("/delSessionAttributes")
    39     public String delSessionAttributes(SessionStatus status){
    40 
    41         System.out.println("delSessionAttributes...");
    42 
    43         status.setComplete();
    44         return "success";
    45     }

    学习完毕!

     

  • 相关阅读:
    centos 配置puTTY rsa自动登录
    Linux LVM 简单操作
    linux 系统下有sda和hda的硬件设备分别代表什么意思
    Centos 安装Sublime text 3
    编译安装MySQL-5.7.13
    药品查询网的数据库
    获得Android设备的唯一序列号
    Android中设置TextView的颜色setTextColor
    介绍几款网页数据抓取软件 分类: 业余 2015-08-07 18:09 5人阅读 评论(0) 收藏
    网上处方药物手册Rxlist 及其药学信息资源 分类: 业余 2015-08-07 14:16 8人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/zhihaospace/p/11962518.html
Copyright © 2011-2022 走看看