您的位置:首页 > 编程语言 > Java开发

我的SpringMvc学习之路之注解

2016-04-22 11:51 369 查看
用注解代替配置文件可减少编程是不必要的麻烦和错误。

@Controller  控制器定义

在一个class的上面写上@controller声明此类为控制器类,在配置中*.dispatcher.xml里定义<context:component-scan base-package="com.song" /> 
*.dispatcher.xml则会自动扫描com.song下面的每个文件,当发现@Controller注解的文件时,会将该类转换为bean。@Controller与@@Component有同样的作用。

比如:


@RequestMapping 映射定义

定义在类的前面,将url与类绑定。

如:


定义在方法前面,将url与方法绑定。

如:


@RequestMapping还可以限定进入该方法的方式

如:


声明该方法只能通过GET请求进入。

@PathVariable与@RequestParam 绑定URL参数

这里把两个注解仿在一起讲,因为作用非常相近。
@RequestParam 将url上传递过来的参数绑定在形参上。

如:


url 可以写成 

就能把?后的name绑定在形参name里使用。

@PathVariable 将rest风格的url上的参数绑定在形参上

如:


【注】@RequestMapping("index/{name}")

从Spring3.0后加入了rest风格,就像这样

 


通过在@PathVariable路径上写上参数的名字,就可以将浏览器上写在方法映射后的参数绑定在形参上。【注】{...}的的名称要与形参的名称一样,如果在@PathVariable后声明了接受参数的名称则形参名称可自定义。并且通过绑定的参数可以直接通过EL在页面获得。

@SessionAttribute与@ModelAttribute

@SessionAttribute 使模型对象的属性拥有session的作用域

如:


将ModelMap中名为u的属性放入session中,这个属性可以跨请求访问。【注】@SessionAttribute还可以声明一个数组

在默认的情况下,@ModelAttribute中的属性是保存在request中的,这导致本次请求结束后@ModelAttribute将会被销毁,所以配合@SessionAttribute使用,将@ModelAttribute的属性绑定在@SessionAttribute上,即可实现@ModelAttribute的跨请求访问。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java springmvc 编程