【java】itoo项目实战促学之SpringMVC注解_@RequestMapping
2015-02-04 11:11
447 查看
在使用springMVC框架的时候,在写controller层的时候,在每个类的方法头上,都会有一个很明显的注解--@RequestMapping.DispatcherServlet截获请求后,就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法。我们知道它最常见的作用就是为控制器指定可以处理的URL请求.下面就再给大家介绍一下它的其他作用.
一.修饰类
先来看看@RequestMapping的封装:
从@RequestMapping的头注释可以看出,它可以修饰method和type.
类定义处:
提供初步的请求映射信息,相对于WEB应用的的根目录.
handler具体写法如下:
View的请求方式如下:
二.方法处
提供进一步的细分映射信息.相对于类定义处的URL.若类定义出未标注@RequestMapping,则方法处标记的URL相对于WEB应用的根目录.
handler具体实现:
View的具体请求:
一个View有多个请求,并且多个请求之间有公共指出,既可以把公共之处提前出来,放到类定义处,把不同的不同之处放在方法处.这就是传说中的抽象.
二.映射请求
@RequestMapping除了可以使用请求URL映射请求外,还可以使用请求方法,请求参数及请求头映射请求.
Handler具体代码:
View :
@RequestMapping的value,method,params及heads分别表示请求URL,请求方法,请求参数及请求头的映射条件,他们之间是与的关系,联合使用多个条件可让请求更加精确化.
Handler代码:
View:
结果为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/16/3e2457718f029ac54c5be5fb9978e718)
如果把view的访问请求改为age=10,
访问结果为:
![](https://oscdn.geek-share.com/Uploads/Images/Content/202010/16/54638c2d1bcf21808f47a885bdd021c4)
掌握SpringMVC注解的常用方法,可以让你的开发效率事倍功半
一.修饰类
先来看看@RequestMapping的封装:
@Target({ElementType.METHOD, ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Mapping public @interface RequestMapping { ..... }
从@RequestMapping的头注释可以看出,它可以修饰method和type.
类定义处:
提供初步的请求映射信息,相对于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") @Controller public 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>
@RequestMapping的value,method,params及heads分别表示请求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注解的常用方法,可以让你的开发效率事倍功半
相关文章推荐
- 【java】itoo项目实战之SpringMVC_@ModelAttribute解决部分更新问题
- 【java】itoo项目实战之优化后具体代码
- 【java】itoo项目实战之大数据查询之使用 new map 优化hibernate之级联查询
- 【java】itoo项目实战之常见问题三
- java注解详解(注解项目实战)
- 【java】itoo项目实战之hibernate 批量保存优化
- 【java】itoo项目实战之常被忽视的性能优化
- 【java】itoo项目实战之EJB中的RMI框架
- 【java】itoo项目实战之百万数据查询优化收集与实践
- 【java】itoo项目实战之常见问题一
- 【java】itoo项目实战之减少IO读写的导入思路
- 【java】itoo项目实战之hibernate 批量保存优化
- 【java】itoo项目实战之hibernate 懒载入优化性能
- 【java】itoo项目实战之hibernate 懒加载优化性能
- 【java】itoo项目实战之java Web 中web的作用
- Java SpringMVC MyBatis整合项目 注解
- 【java】itoo项目实战之常见问题二
- 【java】itoo项目实战之大数据查询之使用 new map 优化hibernate之级联查询
- 【java】itoo项目实战之SpringMVC+EasyUI_HelloWorld
- 【java】itoo项目实战之EJB中的RMI框架如何设计