我的SpringMvc学习之路之注解

来源:互联网 发布:啊哈算法 编辑:程序博客网 时间:2024/05/29 19:01

用注解代替配置文件可减少编程是不必要的麻烦和错误。

@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的跨请求访问。

1 0
原创粉丝点击