Spring mvc注解说明


编号


注解


说明


位置


备注


1


@Controller


将类变成Spring Bean



现阶段 @Controller 、 @Service 以及 @Repository 和 @Component 注解的作用是等价的


2


@RequestMapping


请求映射


类、方法


标注在类上意指类实现 Controller 接口

标注在方法上意指扩展 Spring 预定义 Controller ( 如:SimpleFormController)


3


@RequestParam


入参绑定 URL


入参


指定 URL 参数与方法入参的绑定规则


4


@SessionAttributes


设定 Session范围属性



如: @SessionAttributes("user") ,将把 ModelMap 中的 user 属性添加到 Session 范围


5


@InitBinder


注册Controller 级的自定义属性编辑器


方法


@InitBinder 注解的方法必须拥有一个 WebDataBinder 类型的入参,以便 Spring MVC 框架将注册属性编辑器的 WebDataBinder 对象传递进来


6


@ModelAttribute


准备引用数据/ 将 ModelMap属性绑定到入参


方法、入参


标注在方法上:准备引用数据

标注在入参上:将 ModelMap 中的属性绑定到请求处理方法的入参中

再来看一下Controller中方法的入参类型:


编号


请求处理方法入参的可选类型


说明


1


Java 基本数据类型和 String


默认情况下将按名称匹配的方式绑定到 URL 参数上,可以通过 @RequestParam注解改变默认的绑定规则


2


request/response/session


既可以是 Servlet API 的也可以是 Portlet API 对应的对象, Spring 会将它们绑定到 Servlet 和 Portlet 容器的相应对象上


3


org.springframework.web.context.request.WebRequest


内部包含了 request 对象


4


java.io.InputStream/java.io.Reader


可以借此访问 request 的内容


5


java.io.OutputStream / java.io.Writer


可以借此操作 response 的内容


6


任何标注了 @RequestParam 注解的入参


被标注 @RequestParam注解的入参将绑定到特定的request 参数上。


7


java.util.Map / org.springframework.ui.ModelMap


它绑定 Spring MVC 框架中每个请求所创建的潜在的模型对象,它们可以被 Web视图对象访问(如 JSP )


8


命令 / 表单对象(注:一般称绑定使用 HTTP GET 发送的URL 参数的对象为命令对象,而称绑定使用 HTTP POST发送的 URL 参数的对象为表单对象)


它们的属性将以名称匹配的规则绑定到 URL 参数上,同时完成类型的转换。而类型转换的规则可以通过@InitBinder 注解或通过HandlerAdapter 的配置进行调整


9


org.springframework.validation.Errors / org.springframework.validation.BindingResult


为属性列表中的命令 / 表单对象的校验结果,注意检验结果参数必须紧跟在命令 /表单对象的后面


10


rg.springframework.web.bind.support.SessionStatus


可以通过该类型 status 对象显式结束表单的处理,这相当于触发 session 清除其中的通过@SessionAttributes 定义的属性

再来看一下Controller中方法的返回类型:


编号


请求处理方法入参的可选类型


说明


1


void


此时逻辑视图名由请求处理方法对应的URL 确定,如以下的方法:

@RequestMapping("/welcome.do")

public void welcomeHandler() {

}

对应的逻辑视图名为“ welcome ”


2


String


此时逻辑视图名为返回的字符,如以下的方法:

@RequestMapping(method = RequestMethod.GET)

public String setupForm(@RequestParam("ownerId") int ownerId, ModelMap model) {

Owner owner = this.clinic.loadOwner(ownerId);

model.addAttribute(owner);

return "ownerForm";

}

对应的逻辑视图名为“ ownerForm ”


3


org.springframework.ui.ModelMap


和返回类型为 void 一样,逻辑视图名取决于对应请求的 URL ,如下面的例子:

@RequestMapping("/vets.do")

public ModelMap vetsHandler() {

return new ModelMap(this.clinic.getVets());

}

对应的逻辑视图名为“ vets ”,返回的ModelMap 将被作为请求对应的模型对象,可以在 JSP 视图页面中访问到。


4


org.springframework.web.servlet.ModelAndView


当然还可以是传统的 ModelAndView 。

时间: 2024-12-28 23:58:46

Spring mvc注解说明的相关文章

Spring MVC注解的一些案列

1.  spring MVC-annotation(注解)的配置文件ApplicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quo

spring mvc(注解)上传文件的简单例子

spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationContext.xml中 <bean id=”multipartResolver” class=”org.springframework.web.multipart.commons.CommonsMultipartResolver”/> 关于文件上传的配置不能少 大家可以看具体代码如下: web.xml &

Spring MVC注解配置结合Hibernate的入门教程及其代码实例

原文:Spring MVC注解配置结合Hibernate的入门教程及其代码实例 源代码下载地址:http://www.zuidaima.com/share/1787210045197312.htm 1.概述 本文旨在搭建Spring MVC+Hibernate开发框架,通过一个简单的demo讲解Spring MVC的相关配置文件,以及通过注解方式实现简单功能. 开发框架:Spring+Spring MVC+Hibernate(Spring所用的版本为3.0.5). 数据库:MySQL(数据库名称

spring mvc 注解入门示例

web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/ja

spring mvc 注解@Controller @RequestMapping @Resource的详细例子

现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了.不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理. 一.Spring MVC环境搭建:(Spring 2.5.6 + Hibernate 3.2.0) 1. jar包引入 Spring 2.5.6:spring.jar.spring-webmvc.jar.comm

spring mvc 注解示例

springmvc.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframewo

[转]spring mvc注解方式实现向导式跳转页面

由于项目需要用到向导式的跳转页面效果,本项目又是用spring mvc实现的,刚开始想到用spring 的webflow,不过webflow太过笨重,对于我们不是很复杂的跳转来说好像有种“杀鸡焉用牛刀”的感觉,于是就网上搜索看有没有类似的解决方案,网上的答案一般都是叫你继承AbstractWizardFormContoller这个类来实现,但对于spring mvc3.0.x这个类将不再使用,转而推荐使用注解的方式来实现,于是参考官方文档,用注解方式实现了向导式页面. 下面是代码示例: [jav

Spring mvc注解式开发入门

java类 package com.cloud.po; import Java.util.Date; public class Items { private Integer id; private String name; private Float price; private String pic; private Date createtime; private String detail; public Integer getId() { returnid; } public void

Spring MVC 注解[转]

[学习笔记]基于注解的spring3.0.x MVC学习笔记(九) 摘要: 本章节,仅为@SessionAttributes的功能扩展介绍介绍,结合@requestparam注解进行简易无数据库分页. 之前介绍了@SessionAttributes的功能,他可以保存指定的值在modelnap中,不会因为request提交后则消失,我们利用这个特性,可以利用SessionAttributes注解进行简易的分页. 代码如下: 1: public class testservi...阅读全文 post