zoukankan      html  css  js  c++  java
  • SpringMVC的各种注解

      @RequestMapping

    这个注解标注在方法名上,如

     1 /**
     2      * 拦截所有请求:
     3      * @RequestMapping(value="/*", method = {RequestMethod.GET})
     4      * http://localhost:8080/SpringMVCTag/helloworld/xd
     5      */
     6     //@AuthPassport
     7     @RequestMapping(value="/*", method = {RequestMethod.GET})
     8     public ModelAndView urlTest(){
     9         ModelAndView modelAndView = new ModelAndView();   
    10         //跳转到 urltest.jsp或者其他后缀的页面,这个要看springmvc的配置文件里是怎么设置的,
    11         modelAndView.setViewName("urltest");  
    12         return modelAndView;
    13     }

    @RequestMapping(value="/*")

    1 就是拦截所有请求

    结合上面的一小段代码就是拦截:

    类似于http://localhost:8080/SpringMVCTag/helloworld/我是任意字符,

    http://localhost:8080/SpringMVCTag/helloworld/comaosdfjoa

    这样的请求。

     2 拦截多个(多个)请求

    例如:

     1 /**
     2      * 拦截多种请求
     3      *  如: @RequestMapping(value={"/index","/hello"})
     4      *  访问URL:http://localhost:8080/SpringMVCTag/helloworld/index
     5      * @return
     6      * @throws SQLException
     7      */
     8     //@AuthPassport
     9     @RequestMapping(value={"/index","/hello"})
    10     public ModelAndView index() throws SQLException{
    11         
    12         //throw new SQLException("数据库异常。");
    13         
    14         ModelAndView modelAndView = new ModelAndView();  
    15         //在jsp中可以通过 ${message} 的形式来获取绑定的值
    16         modelAndView.addObject("message", "Hello World!");  
    17         modelAndView.setViewName("index");  
    18         return modelAndView;
    19     }

    3 @RequestMapping 注解结合 @PathVariable注解可以在控制器(也就是具体的方法)的入参里

    获取到URL中的占位参数

    例如:

     1 /**
     2      * @RequestMapping 结合 @PathVariable 注解可以获取URL中带占位的那个参数值,
     3      * 具体到这个例子中,在方法名中Integer id这个入参的值就是URL中的值,
     4      * 假如URL为:
     5      * http://localhost:8080/SpringMVCTag/helloworld/detail/yangdandan
     6      * 那么在跳转到的detail.jsp中通过
     7      * ${cxrr}的形式就可以获取到 yangdandan 这个字符串
     8      * @param id
     9      * @return
    10      */
    11     @RequestMapping(value="/detail/{thepara}", method = {RequestMethod.GET})
    12     public ModelAndView getDetail(@PathVariable(value="thepara") String thepara){
    13         
    14         ModelAndView modelAndView = new ModelAndView();  
    15         modelAndView.addObject("crxx", thepara);  
    16         modelAndView.setViewName("detail");  
    17         return modelAndView;
    18     }

    明天继续填坑。

    项目所在位置如下图:

    BaseController.java:

     1 package com.demo.web.controllers;
     2 
     3 import java.sql.SQLException;
     4 import javax.servlet.http.HttpServletRequest;
     5 import org.springframework.web.bind.annotation.ExceptionHandler;
     6 /**
     7  * 
     8  * @author Wei
     9  * @time  2017年4月20日 下午3:56:51
    10  */
    11 public abstract class BaseController {  
    12 
    13     @ExceptionHandler
    14     public String exception(HttpServletRequest request, Exception e) {  
    15           
    16         request.setAttribute("exceptionMessage", e.getMessage());  
    17           
    18         // 根据不同的异常类型进行不同处理
    19         if(e instanceof SQLException) 
    20             return "testerror";   
    21         else
    22             return "error";  
    23     }  
    24     
    25 }  
    HelloWorldController.java
     1 package com.demo.web.controllers;
     2 
     3 import java.sql.SQLException;
     4 
     5 import org.springframework.stereotype.Controller;
     6 import org.springframework.web.bind.annotation.PathVariable;
     7 import org.springframework.web.bind.annotation.RequestMapping;
     8 import org.springframework.web.bind.annotation.RequestMethod;
     9 import org.springframework.web.servlet.ModelAndView;
    10 
    11 /**
    12  * 
    13  * @author Wei
    14  * @time  2017年4月20日 下午4:56:43
    15  */
    16 @Controller
    17 @RequestMapping(value = "/helloworld")
    18 public class HelloWorldController extends BaseController {
    19     /**
    20      * 拦截所有请求:
    21      * @RequestMapping(value="/*", method = {RequestMethod.GET})
    22      * http://localhost:8080/SpringMVCTag/helloworld/xd
    23      */
    24     //@AuthPassport
    25     @RequestMapping(value="/*", method = {RequestMethod.GET})
    26     public ModelAndView urlTest(){
    27         ModelAndView modelAndView = new ModelAndView();   
    28         //跳转到 urltest.jsp或者其他后缀的页面,这个要看springmvc的配置文件里是怎么设置的,
    29         modelAndView.setViewName("urltest");  
    30         return modelAndView;
    31     }
    32     /**
    33      * 拦截多种请求
    34      *  如: @RequestMapping(value={"/index","/hello"})
    35      *  访问URL:http://localhost:8080/SpringMVCTag/helloworld/index
    36      * @return
    37      * @throws SQLException
    38      */
    39     //@AuthPassport
    40     @RequestMapping(value={"/index","/hello"})
    41     public ModelAndView index() throws SQLException{
    42         
    43         //throw new SQLException("数据库异常。");
    44         
    45         ModelAndView modelAndView = new ModelAndView();  
    46         //在jsp中可以通过 ${message} 的形式来获取绑定的值
    47         modelAndView.addObject("message", "Hello World!");  
    48         modelAndView.setViewName("index");  
    49         return modelAndView;
    50     }
    51     /**
    52      * @RequestMapping 结合 @PathVariable 注解可以获取URL中带占位的那个参数值,
    53      * 具体到这个例子中,在方法名中Integer id这个入参的值就是URL中的值,
    54      * 假如URL为:
    55      * http://localhost:8080/SpringMVCTag/helloworld/detail/yangdandan
    56      * 那么在跳转到的detail.jsp中通过
    57      * ${cxrr}的形式就可以获取到 yangdandan 这个字符串
    58      * @param id
    59      * @return
    60      */
    61     @RequestMapping(value="/detail/{thepara}", method = {RequestMethod.GET})
    62     public ModelAndView getDetail(@PathVariable(value="thepara") String thepara){
    63         
    64         ModelAndView modelAndView = new ModelAndView();  
    65         modelAndView.addObject("crxx", thepara);  
    66         modelAndView.setViewName("detail");  
    67         return modelAndView;
    68     }
    69     
    70     @RequestMapping(value="/reg/{name:\w+}-{age:\d+}", method = {RequestMethod.GET})
    71     public ModelAndView regUrlTest(@PathVariable(value="name") String name, @PathVariable(value="age") Integer age){
    72         
    73         ModelAndView modelAndView = new ModelAndView();   
    74         modelAndView.addObject("name", name); 
    75         modelAndView.addObject("age", age); 
    76         modelAndView.setViewName("regurltest");  
    77         return modelAndView;
    78     }
    79     
    80     @RequestMapping(value="/paramstest", params="example!=AAA", method = {RequestMethod.GET})
    81     public ModelAndView paramsTest(){
    82         
    83         ModelAndView modelAndView = new ModelAndView();   
    84         modelAndView.setViewName("paramstest");  
    85         return modelAndView;
    86     }
    87     
    88 }
  • 相关阅读:
    Java中使用Log4j记录错误、输出日志
    oracle 触发器的实例(转)
    [jsp学习笔记]servelt get post
    [winfrom]C#中使用SendMessage
    3)创建,测试,发布 第一个NET CORE程序
    DDL和DML 的区别
    [jsp学习笔记] jsp过滤器
    [jsp学习笔记] jsp基础知识 数据初始化、同步
    [jsp学习笔记]jstl标签的使用
    LiteORM-For-DotNet,我的第一个开源库……更新
  • 原文地址:https://www.cnblogs.com/Sunnor/p/6739945.html
Copyright © 2011-2022 走看看