【springmvc学习】常用注解总结
@Controller
在springmvc中,我们用它来告诉前端控制器,他这个类是controller,也就是springmvc的一个对象了,我们在spring.xml配置文件中用<context:component-scan>配置了要扫描这样的类,这样springmvc就可以用它来处理由前端控制器分发的请求了..
@Autowired
在我们的controller中,我们经常在私有定义service的时候使用它,它可以写在字段上或者是方法上,用来装载bean,当spring启动的时候,AutowiredAnnotationBeanPostProcessor将扫描spring容器中的bean,当发现bean中拥有这个注解的时候,就找到和他一样的bean,注入到对应的地方去。他可以用到字段和属性方法中。
@RequestMapping
这个是一个地址映射的注解,可以用在类上或者是方法上,假如是在类上,那就是父路径,这样一个完整的url请求路径就是父路径+子路径。
它里面的属性比较多,例如:@RequestMapping(value = "/editItems", method =
{ RequestMethod.POST, RequestMethod.GET }) 其中value是代表实际上请求的路径,method里面可以设置请求的类型,例如post,get等,params代码的是参数值,也就是request中必须包含参数才能处理。
@RequestMapping支持很多的参数类型,包括
HttpServlet对象(HttpServletRequest,HttpServletResponse,HttpSession)
InputStream,OutputStream,Reader和writer
使用@ModelAttribute标记的参数
使用MultipartFile来上传文件
spring封装的验证方法。比如获取异常的Error和BindingResult对象
等
@RequestParam
他是用来获取jsp传来的参数的,和request.getparameter("username").例如这个方法:public
String editItems(Model model,@RequestParam(value = "id", required =
true, defaultValue = "1") Integer items_id)
其中value是代表传来的值,required代表是否必须,默认是true,表示请求中一定要有参数值,defaultValue是默认值,表示如果请求中没有同名参数时候的默认值,也就是假如id没有传过来,那么id的默认值就是1.
@ModelAttribute
springmvc默认支持pojo会显,也就是自动的将形参中的pojo重新放回到request域中,request的key为pojo的类名,比如返回到但是假如我们要数据回显,遇到了jsp页面和后台方法的不一致,比如:
public String editItemSubmit(Model model,ItemsCustom itemsCustom)这个方法,springmvc自动将itemsCustom放在request中,但是假如返回到jsp的不是itemsCustom,这时候加上@ModelAttribute("items"),jsp页面就可以通过items.price轻松获取到itemsCustom的price属性了。
@Validated
表示对参数绑定数据进行校验,校验信息写入到BindingResult中,要校验的pojo后面添加BingdingResult。
@RequestBody
注解用来读取HTTP请求的内容,通过springmvc提供的HttpMessageConverter接口将读到的内容转换为json,XML等格式绑定到controller方法的参数中。比如讲http请求的json数据转换为Java对象。
@ResponseBody
将注解用于将Controller的方法返回的对象,通过接口转换为指定的格式,比如将java对象转换为json对象的时候使用它。
@PathVariable
用于将请求的url中的模板变量映射到功能处理方法的参数上,例如:
@RequestMapping("/viewItems/{id}")
public @ResponseBody viewItems(@PathVariable("id") String id,Model model)throws
Exception{
对springmvc学习的还很少很少,所以对这些注解的体会还很浅很浅。
【springmvc学习】常用注解总结的更多相关文章
- (三)SpringMVC之常用注解
SpringMVC的常用注解 注解 说明 @Controller 用于说明这个类是一个控制器 @RequestMapping 用于注释一个控制器类或者控制器类的方法 @RequestParam 用于将 ...
- SpringMVC的常用注解
在SpringMVC中常用的注解主要都是用于Controller上,所以下面的四大不同类型的注解都是根据它们处理的request的不同内容部分来区分的: 处理requ ...
- springMvc之常用注解介绍
@requestbody和@requestparam的用法 获取请求参数的方法 get请求: 直接获取request 如: public String getHtml(HttpServletR ...
- SpringMVC相关常用注解
@Controller: @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象 @RequestMapping: RequestMappin ...
- Spring和SpringMVC的常用注解
Spring的部分: 使用注解之前要开启自动扫描功能 其中base-package为需要扫描的包(含子包). <context:component-scan base-package=" ...
- springMVC学习三 注解开发环境搭建
第一步:导入jar包 第二步:配置DispatcherServlet 前端控制器 因为此处把DsipatcherServlet的映射路径配置成了"/",代表除了.jsp文件之外, ...
- springMVC的常用注解有哪些?
1.@Controller @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象.分发处理器将会扫描使用了该注解的类的方法,并检测该方法是否 ...
- springmvc:常用注解
一.RequestParam注解 作用: 把请求中指定名称的参数给控制器中的形参赋值. 属性: value:请求参数中的名称. required:请求参数中是否必须提供此参数.默认值:true.表示必 ...
- SpringMVC框架——常用注解
@RequestMapping Spring MVC 通过 @RequestMapping 注解将请求与业务方法进行映射,在方法定义处,在类定义都可以添加该注解. 常用参数: 1.value:指定请求 ...
- SpringMVC学习笔记:数据的接收与返回
SpringMVC的定义:Spring Web MVC is the original web framework built on the Servlet API and included in t ...
随机推荐
- naptime
naptime 有一个长度为n的序列\(a_i\),首尾相接组成了一个环,现在要在这个环上选出若干个区间,使区间长度之和恰好为b,然后忽略区间的顺时针开头元素,权值累加区间中所有的数字,问权值的最大值 ...
- 筛法求欧拉函数(poj2478
求1-n的欧拉函数的值 #include <iostream> #include <cstdio> #include <queue> #include <al ...
- 时间复杂度 - Convert 计算次数 TO 时间复杂度
我们假设计算机运行一行基础代码需要执行一次运算. int aFunc(void) { printf("Hello, World!\n"); // 需要执行 1 次 return 0 ...
- 廖雪峰Java14Java操作XML和JSON-1XML-4第三方XML库
总结: 使用Jackson可以快速在XML和JavaBean之间互相转换 可使用Annotation定制序列化和反序列化
- Docker配置JDK1.8
1.安装Docker(菜鸟教程有) https://www.runoob.com/docker/centos-docker-install.html 2.docker下载centos镜像(用作配置jd ...
- 0815NOIP模拟测试赛后总结
立个flag:今天一定改完最少两道题然后认认真真写题解. 8/16 upd:果然flag不要立太狠…… 赛时状态: 赛后的老师:这套题我就没想让你上100分. 120分的天皇大神撇了撇嘴. 众人:…… ...
- SpringBoot_02_SpringBoot的配置文件
1.SpringBoot配置文件 SpringBoot是基于约定的,所以很多配置都有默认值,但如果想使用自己的配置替换默认配置的话,就可以使用application.properties或者appli ...
- Docker这个新软件究竟是用来干嘛的???
http://dockone.io/article/378 尝试新软件 对开发者而言,每天会催生出的各式各样的新技术都需要尝试,然而开发者却不太可能为他们一一搭建好环境并进行测试.时间非常宝贵,正是得 ...
- RQNOJ--160 竞赛真理(01背包)
题目http://www.rqnoj.cn/problem/160 分析:这是一个01背包问题,对于每一道题目,都有两个选择"做"或者"不做". 但是唯一不同的 ...
- ckeditor图片上传二三事
最近实验室要用ckeditor,踩了几个小坑记录下. 1.出现iframe跨域问题 response.setHeader("X-Frame-Options", "SAME ...