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

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

.修饰类

先来看看@RequestMapping的封装:

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @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")
@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>

     @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
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

弯_弯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值