SpringMVC中常用注解与使用方法详解

MVC简介

MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计创建 Web 应用程序表现层的模式。

Model(模型): 通常指的就是我们的数据模型。作用一般情况下用于封装数据。

View(视图): 通常指的就是我们的 jsp 或者 html。作用一般就是展示数据的。 通常视图是依据模型数据创建的。

Controller(控制器): 是应用程序中处理用户交互的部分。作用一般就是处理程序逻辑的。

SpringMVC简介

SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架,属于 Spring FrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web

应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用 Spring 进行 WEB 开发时,可以选择使用 Spring 的 Spring MVC 框架或集成其他 MVC 开发框架。

SpringMVC 已经成为目前最主流的 MVC 框架之一,并且随着 Spring3.0 的发布,已成为最优秀的 MVC 框架。

SpringMVC中的常用注解

@GetMapping

作用:用于建立请求URL和处理请求方法之间的对应关系

可以出现在类上,请求URL的第一级访问目录

可以出现在方法上,请求URL的第二级访问目录

value:用于指定请求的URL。它和path属性的作用是一样的

method:用于指定请求的方式

params:用于指定限制请求参数的条件

@Controller
//@RequestMapping("SpringMVC/")
public class HelloController {

    //请求方法为get  请求参数必须有username
    @RequestMapping(value = "/hello",method = RequestMethod.GET,params = {"username"})
    //@RequestMapping("/hello")
    public String sayHello(){
        System.out.println("SpringMVC hello~~~");
        return "success";
    }

}

@RequestParam

作用:把请求中指定名称的参数给控制器中的形参赋值

value:请求参数的名称

required:请求参数中必须提供此参数。默认值:true,表示必须提供,如果不提供就报错。

@RequestMapping("/testRequestParam")
    //RequestParam --更名
    // 属性  value=别名 required=必须含有的参数
    public String testRequestParam(@RequestParam(value = "username") String  name){
        System.out.printf(name);
        System.out.println("testRequestParam执行了~~~");
        return "success";
    }

@RequestBody

作用:用于获取请求体内容。直接使用得到key=value&key=vaule...结构的数据。get请求方式不适用

required:是否必须有请求体。当取值为true时,get请求会报错。如果取值为false,get请求得到是null。

 @RequestMapping("/testRequestBody")
    //RequestBody 获取请求体中的内容  如:username=benshan&password=98989&money=200
    public String testRequestBody(@RequestBody String body){
        System.out.println("testRequestBody执行了~~~");
        System.out.println(body);
        return "success";
    }

@PathVariable

作用:用于绑定URL中的占位符。url中有/delete/{id},{id}就是占位符。

@RequestMapping("/testPathVariable/{id}")
    //PathVariable使用Restful风格,结构清晰,拓展方便
    public String testPathVariable(@PathVariable(value = "id") String id){
        System.out.println("testPathVariable~~~");
        System.out.println(id);
        return "success";
    }

@RequestHeader

作用:用于获取请求消息头

value 提供消息头名称

required:是否必须有此消息头

 @RequestMapping("/testRequestHeader")
    //testRequestHeader获取请求头的值
    public String testRequestHeader(@RequestHeader(value = "Accept") String header){
        System.out.println("testRequestHeader~~~");
        System.out.println(header);
        return "success";
    }

@CookieValue

作用:用于把指定cookie名称的值传入控制器方法参数

value:指定cookie的名称

required:是否必须有此cookie

@RequestMapping("/testCookieValue")
    //testRequestHeader获取请求头的值
    public String testCookieValue(@CookieValue(value = "JSESSIONID") String cookie){
        System.out.println("testCookieValue~~~");
        System.out.println(cookie);
        return "success";
    }

@ModelAttribute

作用:可以修饰方法和参数。出现在方法上,表示当前方法会在控制器的方法执行之前执行,先执行。出现在参数上,获取指定的数据给参数赋值

value 用于获取数据的key

@RequestMapping("/testModelAttribute")
    public String testModelAttribute(){
        System.out.println("testModelAttribute~~~");
        return "success";
    }
    @ModelAttribute
    //在控制器执行之前  执行
    public void showUser(){
        System.out.println("showUser执行了~~~");
    }

@SessionAttributes

作用:用于多次执行控制器方法间的参数共享

value 用于指定存入的属性名称

type:用于指定存入的数据类型

新注解

@RequestMapping 和 @GetMapping @PostMapping 区别

@GetMapping是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。

@PostMapping是一个组合注解,是@RequestMapping(method = RequestMethod.POST)的缩写。

到此这篇关于SpringMVC中常用注解与使用方法详解的文章就介绍到这了,更多相关SpringMVC注解与使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 解决SpringMVC使用@RequestBody注解报400错误的问题

    一般使用@RequestBody接收的时候报400都是传入的json字符串和对应封装的对象不对应造成的 首先要注意 封装的对象中的字段类型有没有Date类型或者int等类型的,如果有的话,在set方法中统一将传入的参数要调整为String类型 在set方法中进行参数的转换 比如有一个Date类型的字段 private Date startTime; public Date getStartTime() { return startTime; } public void setStartTime(

  • SpringMVC使用@Valid注解进行数据验证的方法

    我们在做Form表单提交的时候,只在前端做数据校验是不够安全的,所以有时候我们需要在后端同样做数据的校验.好在SpringMVC在后台验证给我们提供了一个比较好的支持.那就是使用Valid接口的实现类做数据校验.在这之前我们先做一下准备的工作. 添加相关的Maven依赖 我们先把需要的jar包添加进来. <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api<

  • springmvc的@Validated注解使用

    1. 校验的错误信息, 可以直接在bean属性上配置, 也可以在properties中配置. 2. 将校验器bean配置到注解驱动上 3. 在需要校验的pojo前边添加@Validated,在需要校验的pojo后边添加BindingResult bindingResult接收校验出错信息 注意:@Validated和BindingResult bindingResult是配对出现,并且形参顺序是固定的(一前一后). 使用validated所需配置: 1. jar包 2. application.

  • 使用注解开发SpringMVC详细配置教程

    1.使用注解开发SpringMVC 1.新建一个普通的maven项目,添加web支持 2.在pom.xml中导入相关依赖 SpringMVC相关 <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>5.2.8.RELEASE</version> </dependency&

  • 使用SpringMVC的@Validated注解验证的实现

    1.SpringMVC验证@Validated的使用 第一步:编写国际化消息资源文件 编写国际化消息资源ValidatedMessage.properties文件主要是用来显示错误的消息定制 edit.username.null=用户名不能为空 edit.password.size=密码最少{min}位,最长{max}位 ...... 可以将edit.username.null与edit.password.size看为参数,在message中传递,具体请看第二步. 第二步:Bean实体类中加注解

  • SpringMVC 如何使用注解完成登录拦截

    为了实现用户登录拦截你是否写过如下代码呢? 1. 基于Filter import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.s

  • SpringMVC中常用注解与使用方法详解

    MVC简介 MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计创建 Web 应用程序表现层的模式. Model(模型): 通常指的就是我们的数据模型.作用一般情况下用于封装数据. View(视图): 通常指的就是我们的 jsp 或者 html.作用一般就是展示数据的. 通常视图是依据模型数据创建的. Controller(控制器): 是应用程序中处理用户交互的部分.作用一般就是处理程序逻辑的.

  • Spring-IOC容器中的常用注解与使用方法详解

    Spring是什么? Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题.它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持.Spring负责基础架构,因此Java开发者可以专注于应用程序的开发. 体系结构 核心容器(Core Container):Spring的核心容器是其他模块建立的基础,有Spring-core.Spring

  • struts2中使用注解配置Action方法详解

    使用注解来配置Action可以实现零配置,零配置将从基于纯XML的配置转化为基于注解的配置.使用注解,可以在大多数情况下避免使用struts.xml文件来进行配置. struts2框架提供了四个与Action相关的注解类型,分别为ParentPackage.Namespace.Result和Action. ParentPackage:ParentPackage注解用于指定Action所在的包要继承的父包.该注解只有一个value参数.用于指定要继承的父包. 示例: 使用ParentPackage

  • Spring boot中PropertySource注解的使用方法详解

    前言 本文将重点讲解一下Spring中@PropertySource注解的使用,如何通过PropertySource注解加载指定的配置文件.以及PropertySource注解与@ConfigurationProperties两个注解的配合使用.下面话不多说了,来随着小编来一起学习学习吧. 1.1. PropertySource注解加载指定的属性文件 Spring框架提供了PropertySource注解,目的是加载指定的属性文件,接下来我们看一下如何使用该注解.首先我们定义一个配置类,并在类中

  • spring springMVC中常用注解解析

    一,使用注解: 在spring的配置文件applicationContext.xml中,加入注解扫描.配置项就配置了对指定的包进行扫描,以实现依赖注入. <?xml version="1.0" encoding="UTF-8"?> <span style="font-size:18px;"><beans xmlns="http://www.springframework.org/schema/beans&q

  • JavaScript中数组去重常用的五种方法详解

    目录 1.对象属性(indexof) 2.new Set(数组) 3.new Map() 4.filter() + indexof 5.reduce() + includes 补充 原数组 const arr = [1, 1, '1', 17, true, true, false, false, 'true', 'a', {}, {}]; 1.对象属性(indexof) 利用对象属性key排除重复项 遍历数组,每次判断新数组中是否存在该属性,不存在就存储在新数组中 并把数组元素作为key,最后返

  • JavaScript 中有关数组对象的方法(详解)

    JS 处理数组多种方法 js 中的数据类型分为两大类:原始类型和对象类型. 原始类型包括:数值.字符串.布尔值.null.undefined 对象类型包括:对象即是属性的集合,当然这里又两个特殊的对象----函数(js中的一等对象).数组(键值的有序集合). 数组元素的添加 arrayObj.push([item1 [item2 [. . . [itemN ]]]]); 将一个或多个新元素添加到数组结尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [. . .

  • Linux 中常用的Rpm命令实例详解

    rpm命令是RPM软件包的管理工具.rpm原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序,由于它遵循GPL规则且功能强大方便,因而广受欢迎.逐渐受到其他发行版的采用.RPM套件管理方式的出现,让Linux易于安装,升级,间接提升了Linux的适用度. 语法 rpm(选项)(参数) 选项 -a:查询所有套件: -b<完成阶段><套件档>+或-t <完成阶段><套件档>+:设置包装套件的完成阶段,并指定套件档的文件名称: -c:只列出

  • js基础之DOM中元素对象的属性方法详解

    在 HTML DOM (文档对象模型)中,每个部分都是节点. 节点是DOM结构中最基本的组成单元,每一个HTML标签都是DOM结构的节点. 文档是一个    文档节点 . 所有的HTML元素都是    元素节点 所有 HTML 属性都是    属性节点 文本插入到 HTML 元素是    文本节点 注释是    注释节点. 最基本的节点类型是Node类型,其他所有类型都继承自Node,DOM操作往往是js中开销最大的部分,因而NodeList导致的问题最多.要注意:NodeList是'动态的',

  • Python 常用模块 re 使用方法详解

    一.re模块的查找方法: 1.findall   匹配所有每一项都是列表中的一个元素 import re ret = re.findall('\d+','asd鲁班七号21313') # 正则表达式,待匹配的字符串,flag # ret = re.findall('\d','asd鲁班七号21313') # 正则表达式,待匹配的字符串,flag # print(ret) 2.search 只匹配从左到右的第一个,等到的不是直接的结果,而是一个变量,通过这个变量的group方法来获取结果 impo

随机推荐