【java】itoo项目实战促学之SpringMVC注解_@RequestMapping

来源:互联网 发布:安卓服务端数据库 编辑:程序博客网 时间:2024/05/22 03:44

     在使用springMVC框架的时候,在写controller层的时候,在每个类的方法头上,都会有一个很明显的注解--@RequestMapping.DispatcherServlet截获请求后,就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法。我们知道它最常见的作用就是为控制器指定可以处理的URL请求.下面就再给大家介绍一下它的其他作用.

.修饰类

先来看看@RequestMapping的封装:

@Target({ElementType.METHOD, ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)@Documented@Mappingpublic @interface RequestMapping {.....}

@RequestMapping的头注释可以看出,它可以修饰methodtype.

类定义处:

提供初步的请求映射信息,相对于WEB应用的的根目录.

handler具体写法如下:

/** * 1.使用@RequestMapping注解来映射请求的URL * 2.返回值会通过视图解析器解析为实际的物理视图,对于InternalResourceViewResolver * 视图解析器,会做如下的解析: * 通过prefix+returnVal+后缀 这样的方式得到实际的物理视图,然后做转发操作 * @return */@RequestMapping("/test/helloworld")public String  toIndex(){System.out.println("hello world!");return SUCCESS;}

View的请求方式如下:

<a href="test/helloworld">helloworld</a>

.方法处

      提供进一步的细分映射信息.相对于类定义处的URL.若类定义出未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录.

handler具体实现:

@RequestMapping("/springmvc")@Controllerpublic class SpringMVCTest {private static final String SUCCESS="success";/** * 1.@RequestMapping 除了修饰方法,还可以修饰类 * @return */@RequestMapping("/testRequestMapping")public String testRequestMapping(){System.out.println("testRequestMapping");return SUCCESS;}@RequestMapping("/toIndex")public String toIndexList(){return "helloword";}}

View的具体请求:

<a href=" testRequestMapping"  class="easyui-linkbutton" >test  RequestMapping</a>

     一个View有多个请求,并且多个请求之间有公共指出,既可以把公共之处提前出来,放到类定义处,把不同的不同之处放在方法处.这就是传说中的抽象.

.映射请求

     @RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法,请求参数及请求头映射请求.

Handler具体代码:

/** * 使用method属性来指定请求方式 * @return */@RequestMapping(value="/testMethod",method=RequestMethod.POST)public String testMethod(){System.out.println("test method");return SUCCESS;}

View :

<form action="testMethod" method="post"><input type="submit"></form>

     @RequestMappingvalue,method,paramsheads分别表示请求URL,请求方法,请求参数及请求头的映射条件,他们之间是与的关系,联合使用多个条件可让请求更加精确化.

Handler代码:

/** * 可以使用params来更加精确的映射请求,params 支持简单的表达式 * @return */@RequestMapping(value="testParamsAndHeaders",params={"username","age!=10"})public String testParamsAndHeaders(){System.out.println("testParamsAndHeader");return SUCCESS;}

View:

<a href="testParamsAndHeaders?username=admin&age=11">testParamsAndHeaders</a>

结果为:


如果把view的访问请求改为age=10,

<a href="testParamsAndHeaders?username=admin&age=10">testParamsAndHeaders</a>

访问结果为:

掌握SpringMVC注解的常用方法,可以让你的开发效率事倍功半










0 0
原创粉丝点击