Spring MVC控制器方法参数类型及对象

    技术2022-07-10  121

    Spring MVC控制器方法参数类型及对象

    Spring MVC控制器方法参数类型及对象

    Spring MVC控制器方法参数类型及对象

    HttpServletRequest

    Spring会自动将 Servlet API 作为参数传过来

    HttpServletResponse

    InputStream

    相当于request.getInputStream() 获取请求区内容字节流

    OutputStream

    相当于request.getOutputStream() 获取响应区内容字节流

    Reader

    request.getReader()

    Writer

    request.getWriter()

    注意InputStream/OutputStream不能与Reader/Writer混用

    WebRequest

    提供了统一的访问请求数据的接口(参数区、请求头区,但不能访问Cookie区)

    NativeWebRequest

    继承WebRequest,提供本地Servelt API

    webRequest.getParameter(“test”)

    webRequest.setAttribute(“key”,”value”,WebRequest.SCOPE_REQUEST);作用域范围

    webRequest.getAttribute(“key”,WebRequest.SCOPE_REQUEST)

    request = nativeWebRequest.getNativeRequest(HttpServletRequest.class)

    response = nativeWebRequest.getNativeResponse(HttpServletResponse.class)

    HttpSession

    Spring MVC自动将Servlet API的session传递过来

    命令对象

    就是带有setter方法的普通类,用于接收表单参数

    Map map, Model model, ModelMap modelMap

    这三个参数能够暴露控制器中的模型,用于页面的数据渲染 其实,Map、Model、ModelMap三者是同一个对象,都是 BindingAwareModelMap 的实例

    Errors

    错误对象,建议错误对象紧跟在命令对象后(这点在Spring3.1之前是强制规定)

    Locale

    本地对象,等价于 ServletRequest.getLocale

    @RequestParam注解过的对象

    如 @RequestParam String username,则自动从请求中获取参数名为username的值,也可以指定参数名,@RequestParam(“username”),也可以指定是否必须?默认值是多少?

    @RequestParam(value = “pageName”,required = true,defaultValue = “testModelValueUI”)

    默认值除了可以是具体的值外,也可以是SpEL表达式。如 #{systemProperties[‘java.vm.version’]}

    如果请求中包含了同名参数,则一般使用数组或列表来接收

    @ModelAttribute 放在处理请求的方法参数上,绑定的命令对象

    如果将 @ModelAttribute 添加到了方法上(不是参数位置),则暴露返回对象用于页面渲染(注意,这个方法不是功能方法,应该是被Controller调用的方法(我觉得这没啥用))

    如果将 @ModelAttribute 放在了返回值上,则暴露返回值给页面

    @SessionAttribute 绑定命令对象到session,一般用于多个页面的连续请求

    @Value注解,用于将一个SpEL表达式的值绑定到处理方法参数上

    @Value("#{systemProperties[java.vm.version]}")

    链接: [link]https://www.cnblogs.com/sherrykid/p/5789832.html

    Processed: 0.013, SQL: 9