您的位置:首页 > 移动开发

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

2015-02-04 11:11 447 查看
在使用springMVC框架的时候,在写controller层的时候,在每个类的方法头上,都会有一个很明显的注解--@RequestMapping.DispatcherServlet截获请求后,就通过控制器上@RequestMapping提供的映射信息确定请求所对应的处理方法。我们知道它最常见的作用就是为控制器指定可以处理的URL请求.下面就再给大家介绍一下它的其他作用.
一.修饰类
先来看看@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注解的常用方法,可以让你的开发效率事倍功半
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: