spring MVC 注解开发

springmvc注解标签详解


1.@Controller

表明了注解类的服务角色--控制器
从spring3.0起,通过@Controller标注可以将class定义为一个controller类,为使spring找到定义controller的bean,需要在springmvc的配置文件中增加如下
定义:

两种方式:
a.在springmvc配置文件中定义myController的bean对象
b.在springmvc配置文件中告诉应该去哪里找标记@Controller的controller控制器

2.@RequestMapping

RequestMapping是一个处理请求地址映射的请求,可用于类和方法上,用于类上,表示类中所有的相应请求方法都是以该地址作为路径,如果用于方法出则是,提供提供进一步细分映射信息,相对于类定义出的URL,若类定义出未标明.
方法出用于标记的URL相对web应用的根目录
requestMapping一共有六种属性,下面我们一起来学习
@RequestMapping的属性,一般可以修饰方法也可以修饰类
修饰方法如下


结果图


修饰类:


结果:

如果相对于绝对路径来说呢?

得到的结果的路径是相同的.
a.value属性

指请求的实际url。
1, 普通具体值。
2, 含某变量的一类值,详见@PathVariable注解
3, ant风格(了解)
@RequestMapping(value="/get/id?"):
可匹配“/get/id1”或“/get/ida”,但不匹配“/get/id”或“/get/idaa”;
@RequestMapping(value="/get/id*"):
可匹配“/get/idabc”或“/get/id”,但不匹配“/get/idabc/abc”;
@RequestMapping(value="/get/id/*"):
可匹配“/get/id/abc”,但不匹配“/get/idabc”;

注意以上的列子都是正则表达式的匹配
b.method属性


结果也是能跳转到成功页面.
c.params属性
指定request中必须包含某些参数值时,才让该方法处理。

@RequestMapping(params="action=del"),请求参数包含“action=del”,如:http://localhost:8080/book?action=del




结果也能访问成功页面


d.header属性
指定request中必须包含某些指定的header值,才能让该方法处理请求。
@RequestMapping(value="/header/id", headers = "Accept=application/json"):表示请求的URL必须为“/header/id 且请求头中必须有“Accept =application/json”参数即可匹配。


结果:测试无法访问,如果将Accept-Language=en-CN则国内的浏览器可以访问
e.consumes属性
指定处理请求的提交内容类型(Content-Type),例如application/json, text/html
f.produces属性
指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。
方法仅处理request请求中Accept头中包含了"application/json"的请求,同时暗示了返回的内容类型为application/json。

3.@PathVariable映射URL绑定的占位符

带占位符的URL是spring3.0新增的功能,该功能在SpringMVC中是向REST目标挺进发展过程中具有里程碑的意义。
通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中。
注意在这是通过注解方法获取值得,上面我们还学习了通过原生的HttpServletRequest获取值,一共有这两种方法



4.@RequestParam绑定单个请求参数值

@RequestParam用于将请求参数传递给请求方法。
@RequestParam有以下三个参数:
value:
参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;
required:
是否必须,默认是true,表示请求中一定要有相应的参数,否则将抛出异常;
defaultValue:
默认值,表示如果请求中没有同名参数时的默认值,设置该参数时,自动将required设为false




如果改为TRUE,则这个参数是必须传的

5.@RequestHeader绑定请求报头的属性值

请求头包含了若干个属性,服务器可据此获取客户端的信息,通过@RequestHeader即可将请求头中的属性值绑定到处理方法的入参中。



6.@CookieValue绑定请求中的cookie值

请求头包含了若干个属性,服务器可据此获取客户端的信息,通过@CookieValue即可将请求头中的属性值绑定到处理方法的入参中。



7.使用POJO对象绑定请求参数值

SpringMVC会按请求参数和POJO属性名进行自动匹配,自动为该对象填充属性值,支持级联属性。如:dept.deptId, dept.address.tel等。

我们在创建一个实体类entity User并实现他的get和set方法以及toString方法

创建表单

提交成功则转到成功页面,同时查看控制台

如何我们能够实现级联属性的查询呢?,请继续往下看
创建一个Address实体类

同时在User中添加,修改表单


在这city已经传过来了,乱码问题先不管

8.@ServletApi属性




总结:以上这些注解的属性在以后需求中都会选择性的遇到.






























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

奋斗的小巍

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

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

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

打赏作者

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

抵扣说明:

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

余额充值