springmvc的注解都有哪些

作者&投稿:龙蒲 (若有异议请与网页底部的电邮联系)
springmvc的注解都有哪些~

springmvc常用注解标签详解
1、@Controller
在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。
@Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。单单使用@Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。那么要如何做Spring 才能认识它呢?这个时候就需要我们把这个控制器类交给Spring 来管理。有两种方式:
(1)在SpringMVC 的配置文件中定义MyController 的bean 对象。
(2)在SpringMVC 的配置文件中告诉Spring 该到哪里去找标记为@Controller 的Controller 控制器。
2、@RequestMapping
RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。
3、@Resource和@Autowired
@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。
4、@ModelAttribute和 @SessionAttributes
代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法,可用于注解和方法参数中,可以把这个@ModelAttribute特性,应用在BaseController当中,所有的Controller继承BaseController,即可实现在调用Controller时,先执行@ModelAttribute方法。
@SessionAttributes即将值放到session作用域中,写在class上面。
具体示例参见下面:使用 @ModelAttribute 和 @SessionAttributes 传递和保存数据
5、@PathVariable
用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。
6、@requestParam
@requestParam主要用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter("name"),它有三个常用参数:defaultValue = "0", required = false, value = "isApp";defaultValue 表示设置默认值,required 铜过boolean设置是否是必须要传入的参数,value 值表示接受的传入的参数类型。
7、@ResponseBody
作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。
使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;
8、@Component
相当于通用的注解,当不知道一些类归到哪个层时使用,但是不建议。
9、@Repository
用于注解dao层,在daoImpl类上面注解。

spring mvc常用的注解:

@Controller
@Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为

类名称开头字母小写,你也可以自己指定,如下
方法一:
@Controller
public class TestController {}

方法二:
@Controller("tmpController")
public class TestController {}

@RequestMapping

1.@RequestMapping用来定义访问的URL,你可以为整个类定义一个

@RequestMapping,或者为每个方法指定一个。
把@RequestMapping放在类级别上,这可令它与方法级别上的

@RequestMapping注解协同工作,取得缩小选择范围的效果。
例如:
@RequestMapping("/test")
public class TestController {}
则,该类下的所有访问路径都在/test之下。

2.将@RequestMapping用于整个类不是必须的,如果没有配置,所有的方法

的访问路径配置将是完全独立的,没有任何关联。

3.完整的参数项为:@RequestMapping(value="",method =

{"",""},headers={},params={"",""}),各参数说明如下:
value :String[] 设置访问地址
method: RequestMethod[]设置访问方式,字符数组,查看RequestMethod

类,包括GET, HEAD, POST, PUT, DELETE, OPTIONS, TRACE,常用

RequestMethod.GET,RequestMethod.POST
headers:String[] headers一般结合method = RequestMethod.POST使用
params: String[] 访问参数设置,字符数组 例如:userId=id

4.value的配置还可以采用模版变量的形式 ,例如:@RequestMapping

(value="/owners/{ownerId}", method=RequestMethod.GET),这点将在介

绍@PathVariable中详细说明。

5.@RequestMapping params的补充说明,你可以通过设置参数条件来限制

访问地址,例如params="myParam=myValue"表达式,访问地址中参数只有

包含了该规定的值"myParam=myValue"才能匹配得上,类似"myParam"之类

的表达式也是支持的,表示当前请求的地址必须有该参数(参数的值可以是

任意),"!myParam"之类的表达式表明当前请求的地址不能包含具体指定的

参数"myParam"。

6.有一点需要注意的,如果为类定义了访问地址为*.do,*.html之类的,则

在方法级的@RequestMapping,不能再定义value值,否则会报错,例如
Java代码
@RequestMapping("/bbs.do")
public class BbsController {
@RequestMapping(params = "method=getList")
public String getList() {
return "list";
}
@RequestMapping(value= "/spList")
public String getSpecialList() {
return "splist";
}
}

如上例:/bbs.do?method=getList 可以访问到方法getList() ;而访

问/bbs.do/spList则会报错.

@PathVariable
1.@PathVariable用于方法中的参数,表示方法参数绑定到地址URL的模板

变量。
例如:
Java代码
@RequestMapping(value="/owners/{ownerId}",

method=RequestMethod.GET)
public String findOwner(@PathVariable String ownerId, Model

model) {
Owner owner = ownerService.findOwner(ownerId);
model.addAttribute("owner", owner);
return "displayOwner";
}

2.@PathVariable用于地址栏使用{xxx}模版变量时使用。
如果@RequestMapping没有定义类似"/{ownerId}" ,这种变量,则使用在

方法中@PathVariable会报错。

@ModelAttribute
1.应用于方法参数,参数可以在页面直接获取,相当于

request.setAttribute(,)
2.应用于方法,将任何一个拥有返回值的方法标注上 @ModelAttribute,使

其返回值将会进入到模型对象的属性列表中.
3.应用于方法参数时@ModelAttribute("xx"),须关联到Object的数据类型

,基本数据类型 如:int,String不起作用
例如:
Java代码
@ModelAttribute("items")//<——①向模型对象中添加一个名为items的

属性
public List populateItems() {
List lists = new ArrayList();
lists.add("item1");
lists.add("item2");
return lists;
}
@RequestMapping(params = "method=listAllBoard")
public String listAllBoard(@ModelAttribute("currUser")User user,

ModelMap model) {
bbtForumService.getAllBoard();
//<——②在此访问模型中的items属性
System.out.println("model.items:" + ((List)

model.get("items")).size());
return "listBoard";
}

在 ① 处,通过使用 @ModelAttribute 注解,populateItem() 方法将在

任何请求处理方法执行前调用,Spring MVC 会将该方法返回值以“items

”为名放入到隐含的模型对象属性列表中。
所以在 ② 处,我们就可以通过 ModelMap 入参访问到 items 属性,当执

行 listAllBoard() 请求处理方法时,② 处将在控制台打印

出“model.items:2”的信息。当然我们也可以在请求的视图中访问到模型

对象中的 items 属性。

@ResponseBody
这个注解可以直接放在方法上,表示返回类型将会直接作为HTTP响应字节

流输出(不被放置在Model,也不被拦截为视图页面名称)。可以用于ajax。

@RequestParam
@RequestParam是一个可选参数,例如:@RequestParam("id") 注解,所以

它将和URL所带参数 id进行绑定
如果入参是基本数据类型(如 int、long、float 等),URL 请求参数中

一定要有对应的参数,否则将抛出

org.springframework.web.util.NestedServletException 异常,提示无

法将 null 转换为基本数据类型.

@RequestParam包含3个配置 @RequestParam(required = ,value="",

defaultValue = "")
required :参数是否必须,boolean类型,可选项,默认为true
value: 传递的参数名称,String类型,可选项,如果有值,对应到设置方

法的参数
defaultValue:String类型,参数没有传递时为参数默认指定的值

@SessionAttributes session管理
Spring 允许我们有选择地指定 ModelMap 中的哪些属性需要转存到

session 中,以便下一个请求属对应的 ModelMap 的属性列表中还能访问

到这些属性。这一功能是通过类定义处标注 @SessionAttributes 注解来

实现的。@SessionAttributes 只能声明在类上,而不能声明在方法上。

例如

@SessionAttributes("currUser") // 将ModelMap 中属性名为currUser 的属性

@SessionAttributes({"attr1","attr2"})
@SessionAttributes(types = User.class)
@SessionAttributes(types = {User.class,Dept.class})
@SessionAttributes(types = {User.class,Dept.class},value={"attr1","attr2"})

@CookieValue 获取cookie信息
@RequestHeader 获取请求的头部信息

一、@Controller 控制层 ,通常我们所说的action层

Controller控制器是通过服务接口定义的提供访问应用程序的一种行为,它解释用户的输入,将其转换成一个模型然后将试图呈献给用户。Spring MVC 使用 @Controller 定义控制器,它还允许自动检测定义在类路径下的组件并自动注册。

二、@RequestMapping

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

RequestMapping注解有六个属性

value, method;consumes,produces;params,headers

三、@Resource和@Autowired

@Resource和@Autowired都是做bean的注入时使用,其实@Resource并不是Spring的注解,它的包是javax.annotation.Resource,需要导入,但是Spring支持该注解的注入。

四、@ModelAttribute和 @SessionAttributes

代表的是:该Controller的所有方法在调用前,先执行此@ModelAttribute方法,可用于注解和方法参数中,可以把这个@ModelAttribute特性,应用在BaseController当中,所有的Controller继承BaseController,即可实现在调用Controller时,先执行@ModelAttribute方法。@SessionAttributes即将值放到session作用域中,写在class上面。

五、@PathVariable

用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数。

六、@requestParam

@requestParam主要用于在SpringMVC后台控制层获取参数,类似一种是request.getParameter("name"),它有三个常用参数:defaultValue
= "0", required = false, value = "isApp";defaultValue 表示设置默认值,required
铜过boolean设置是否是必须要传入的参数,value
值表示接受的传入的参数类型。

七、@ResponseBody

作用: 该注解用于将Controller的方法返回的对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。

使用时机:返回的数据不是html标签的页面,而是其他某种格式的数据时(如json、xml等)使用;

八、@Component

相当于通用的注解,当不知道一些类归到哪个层时使用,但是不建议。

九、@Repository

用于注解dao层,在daoImpl类上面注解。




8,springmvc默认支持的参数类型有哪些?分别有什么作用
pringMVC默认支持的绑定类型有:HttpServletReequest对象:通过request对象可以获取参数信息 HttpservletResponse对象:通过response对象可以处理响应信息 HTTPSession对象:获取session中存储的对象 Model\/ModelMap:Model是一个接口,ModelMap是一个接口的实现。作用是将模型数据填充到request域。简单类型的参数绑定:...

SpringMVC中的@Transaction怎么使用,有什么作用
首先 @Transaction 是属于 Spring部分的 下面来说说使用 spring中的@Transaction配置详解 1、Spring默认Transactional事物管理机制 如果程序抛出的是运行期例外,则数据回滚 事物处理 如果是重新Exception例外,则数据不会滚。可以通过配置修改该规则 Transactional(noRollbackFor=RuntimeException.class)方法事物说明...

spring-webmvc和spring-web有什么区别
1、定义不同 spring-web是一个一站式的框架,提供了表现层(springmvc)到业务层(spring)再到数据层的全套解决方案;spring的两大核心IOC(控制反转)和AOP(面向切面编程)更是给我们的程序解耦和代码的简介提供了支持。而Spring-webMVC是基于Spring功能之上添加的Web框架,想用pring-webMVC必须先依赖pri...

一个简单的SpringMVC需要哪些jar包
spring-context-3.1.0.RELEASE.jar spring-aop-3.1.0.RELEASE.jar aopalliance-1.0.jar spring-beans-3.1.0.RELEASE.jar pring-core-3.1.0.RELEASE.jar spring-expression-3.1.0.RELEASE.jar spring-asm-3.1.0.RELEASE.jar spring-webmvc-3.1.0.RELEASE.jar spring-context-support-3....

求Spring MVC框架的所有jar包.在哪里有下载全部的?
servlet-api-2.5.jar jsp-api-2.1.jar jstl-1.2.jar junit-4.7.jar 这个是我的一个简单SPRING MVC的所有的包,我是用的SpringSource直接新建一个Spring Template Project ———Spring MVC Project,里面就直接带齐了所需要的包了的 SpringSource是Eclipse的插件版,和MyEclipse类似的东西 ...

Spring功能总结
Spring MVC框架支持:一个全功能的构建 Web 应用程序的 MVC 实现,MVC 容纳了大量视图技术,其中包括 JSP、Velocity等。Spring Dao支持:Spring的Dao支持大大的简化了JDBC操作数据库所带来的繁琐 Spring ORM支持 pring框架集成了若干ORM框架,从而提供了ORM的对象关系工具,其中包括 JDO、Hibernate、iBatis和To...

java系统架构有哪些apache
java系统架构有一下几种:_ava框架 一、Spring框架。 Spring框架是Java后端框架家族中最强大的,拥有IOC和AOP两大利器,简化了开发的复杂性。此外,Spring现在可以与所有主流开发框架集成,这是一个通用框架。Spring使Java开发变得简单。?2.SpringMVC框架。 它是MVC的开源框架,用来代替Struts,是Spring项目...

maven是基于spring框架吗
struts是基于mvc框架的吗 MVC全名是Model View Controller,是模型(model)-检视(view)-控制器(controller)的缩写 而Struts就是MVC中的C的角色,因为他主要是负责ACTION,处理各种请求。关于Spring框架 struts spring hibernate 是java web的开源框架。 一般开发的话IDE用到的都是eclipse,web开发会...

Spring boot 与 Spring cloud 是什么关系
pring boot 我理解就是把spring spring mvc spring data jpa 等等的一些常用的常用的基础框架组合起来,提供默认的配置,然后提供可插拔的设计,就是各种starter,来方便开发者使用这一系列的技术,套用官方的一句话,spring 家族发展到今天,已经很庞大了,作为一个开发者,如果想要使用spring 家族一系列的...

SpringBoot系列:springdevtools模块
spring-boot-devtools是Spring Boot给开发人员提供的一个工具包,它可以提高开发人员的工作效率。我们可以通过如下方式引入该工具包:Maven Gradle 有些SpringBoot支持的库使用了缓存技术来提高性能。比如模板引擎会对编译好的模板进行缓存从而避免每次都要解析模板文件;Spring MVC也会为静态文件缓存一些Http的...

寻乌县17267023560: springmvc常用的注解有哪些 -
众蓝塞夫: 1、@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示.在SpringMVC 中提供了一个非常...

寻乌县17267023560: springmvc的注解都有哪些 -
众蓝塞夫: springmvc常用注解标签详解 1、@Controller 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示.在...

寻乌县17267023560: SpringMVC当中支持的注解有哪些 -
众蓝塞夫: spring mvc常用的注解:个介绍. @Controller @Controller 负责注册一个bean 到spring 上下文中,bean 的ID 默认为类名称开头字母小写,你也可以自己指定,如下 方法一: @Controller public class TestController {}方法二: @Controller("...

寻乌县17267023560: springmvc的注解有哪些 -
众蓝塞夫: 1. @Controller Controller控制器是通过服务接口定义的提供访问应用程序的一种行为,它解释用户的输入,将其转换成一个模型然后将试图呈献给用户.Spring MVC 使用 @Controller 定义控制器,它还允许自动检测定义在类路径下的组件并自动注册.

寻乌县17267023560: springmvc 有哪些注解 pathvariable -
众蓝塞夫: 1、 @PathVariable 当使用@RequestMapping URI template 样式映射时, 即 someUrl/{paramId}, 这时的paramId可通过 @Pathvariable注解绑定它传过来的值到方法的参数上. 示例代码: @Controller @RequestMapping("/owners/{ownerId}") public cl...

寻乌县17267023560: springmvc框架常用注解有哪些 -
众蓝塞夫: 可以将你想传到页面的东西塞到model里,在页面直接取值就可以了,如model.addAtrribute("name",name);那样的话在JSP页面中${name}就能直接得到了

寻乌县17267023560: 各位大神,springmvc里面这些都表示什么意思,本人是新手,谢谢帮忙 -
众蓝塞夫: 这些都是springmvc的注解方式,@Controller,前台请求后台方法,会先找这样注解,然后就可以访问类里的方法了.@Autowired,这是注解注入,我理解的就是自动为你声明的对象添加了set和get方法,然后你就这可以使用你声明对象里的方法或属性 @RequestMapping(value ="/authority/user",method = RequestMethod.GET) 这个是为前台能访问到方法必须写的,value 是你访问方法的路径,就是form中action路径,method是声明你用什么方法访问的,常用GET和POST.这是我现在想到的,更详细的你可以搜搜,springmvc注解详解,有很多

寻乌县17267023560: spring mvc 的 的注解 requestmapping responsebody requestparam分别是什么意 -
众蓝塞夫: requestmapping注解在控制器的方法上,表示此方法的返回值应被解析为视图的相对路径从而跳转页面. responsebody也注解在方法上,表示返回值是实体,不解析成视图. requestparam注解在参数上,表示网络请求调用时要传入这个参数.

寻乌县17267023560: spring mvc的注解方式的参数和返回值的类型都有哪些 -
众蓝塞夫: @RequestMapping("/message") public ModelAndView message(HttpServletRequest request,HttpServletResponse response) throws Exception {ModelAndView mav = new ModelAndView("demo/message");mav.addObject("msg", "...

寻乌县17267023560: Spring 有哪些注解?分别怎么用? -
众蓝塞夫: Controller 该类为Controller RequestMapping 配置方法路径等信息 ResponseBody 返回值,例如JSON,XML PathVariable 获取RESTFUL路径中的值如 /company/{corpId}/dept/{deptId} RequestParam 获取Request参数值如xxx?from=index_nav ...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网