zoukankan      html  css  js  c++  java
  • 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 。

  • 相关阅读:
    os.environ()详解
    查看django setting 源码
    FBV or CBV django settings 源码 模板层语法 摸板的继承 摸板的导入
    jq
    centos安装docker
    idea mapper报红解决
    Method has too many Body parameters
    Gradle安装配置
    itext生成PDF报错java.io.IOException: The document has no pages
    数字千分位
  • 原文地址:https://www.cnblogs.com/laobiao/p/5479881.html
Copyright © 2011-2022 走看看