常用注解元素
@Controller
标注在Bean的类定义处 @RequestMapping
真正让Bean具备Spring MVC Controller功能的是@RequestMapping这个注解 @RequestMapping可以标注在类定义处,将Controller和特定请求关联起来; 还可以标注在方法签名处,以便进一步对请求进行分流
配套的属性有: value需要跳转的地址
method基于RestFul的跳转参数,有RequestMethod.get post put delete等 params符合某个参数的时候才调用该方法 Headers符合头信息的时候才调用
@SessionAttributes 将结果放入session内
@ModelAttribute
存储在响应内容ModelMap或者ModelAndView进行保存值传到前台,当如果你需要保存值比较少
的时候可以采用这种方式进行保存值并且保存到前台显示
在默认情况下,ModelMap中的属性作用域是request级别,相当于HttpServletRequest中的request.setAttribute()一样,在JSP视图页面中通过request.getAttribute(“attribute name”)或者通过
${ attribute name } EL表达式访问模型对象中的属性对象
如果希望在ModelMap 的作用域范围为 session,可以有选择地指定 ModelMap 中的哪些属性需要转存到 session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问到这些属性。这一功能是通过类定义处标注@SessionAttributes注解来实现如:
@Controller
@RequestMapping(\ @SessionAttributes(\
public class BbtForumController {。。。。。}
@ResponseBody
标注后 返回String对象的结果为response内容体,不标注的话 作为dispatcher url使用
@PathVariable
允许将请求路径的制定内容当做求情的参数使用
返回类型
请求处理方法入参的可选类型 说明
void 此时逻辑视图名由请求处理方法对应的URL确定,如以下的方法:
@RequestMapping(\ public void welcomeHandler() { }
对应的逻辑视图名为“welcome”
String 此时逻辑视图名为返回的字符,如以下的方法:
@RequestMapping(method = RequestMethod.GET)
public String setupForm(@RequestParam(\ModelMap model) {
Owner owner = this.clinic.loadOwner(ownerId); model.addAttribute(owner); return \ }
对应的逻辑视图名为“ownerForm”
ModelMap 和返回类型为void一样,逻辑视图名取决于对应请求的URL,
如下面的例子:
@RequestMapping(\ public ModelMap vetsHandler() {
return new ModelMap(this.clinic.getVets()); }
对应的逻辑视图名为“vets”,返回的ModelMap将被作为请求对应的模型对象,
可以在JSP视图页面中访问到。
ModelAndView
返回方式
1使用无返回方法跳转,如果使用返回方法进行跳转的话,则会通过视图解析器进行以
prefix(前缀)+方法名+suffix(后缀)组成的页面文件名称.