• SSM-WebMVC(三)


    SSM-WebMVC(三)

    一、Annotated Controllers

    应用程序控制器

    handlerMethod(处理方法)

    ㈠方法入参

    (springmvc针对于在controller里的方法参数,传入实参对象),处理接口(HandlerMethodArgumentResolver)

    1.javax.servlet.ServletRequest, javax.servlet.ServletResponse
    2.javax.servlet.http.HttpSession
    3.InputStream ,OutputStream,Reader ,Writer
    4.@PathVarable

    ​ 1.路径变量的值会付给方法中形参的值

    ​ 2.@GetMapping("/owners/{ownerId}/pets/{petId}")
    ​ public Pet findPet(@PathVariable Long ownerId, @PathVariable Long petId) {
    ​ // ...

    ​ }

    5.@RequestParam

    ​ 将请求参数付给形参

    6.@CookieValue

    ​ 1.将指定cookie中的值付给形参

    ​ 2.defaultValue属性用于指定默认值

    7.@RequestBody

    ​ 将请求体的内容绑定到参数对象上
    ​ 请求体可以通过 request.getInputStream拿到

    8.java.util.Map, org.springframework.ui.Model, org.springframework.ui.ModelMap

    ​ 都会统一放到request作用域当中

    9.@ModelAttribute

    ​ 1.作用在参数上
    ​ 指定的参数会被自动存放于model当中

    ​ 2.作用在方法上
    ​ 指定的返回值会被自动添加至Model当中

    ​ 3.解析顺序
    ​ From the model if already added by using Model(优先使用Model中存在的值)
    ​ From the HTTP session by using @SessionAttributes
    ​ From a URI path variable passed through a Converter

    10.BindingResult

    ​ 针对于JavaBean的属性验证,来确保对象属性的合法性

    ​ 该对象代表本次的验证结果

    ​ 常见的方法
    ​ hasErrors
    ​ getFieldError

    11.@Valid

    ​ 用来指定需要验证的JavaBean

    ​ 注解后需要紧跟着BindingResult类型

    12.@SessionAttribute
    13.@RequestAttribute

    ㈡方法返回值

    (HandlerMethodReturnValueHandler接口处理,应用程序控制器的方法返回值)

    1.String

    ​ 返回逻辑视图

    2.ResponseEntity

    ​ 在@Controller下,将返回值添加到响应体当中,类似于@ResponseBody

    3.void

    ​ 将请求路径作为逻辑视图名

    4.DeferredResult
    5.Callable

    5、6用于springmvc的异步处理

    6.ModelAndView

    ​ 但凡涉及到逻辑视图的处理,终将统一解析成ModelAndView

    7.Map
    8.自定义类型

    二、DataBinder

    将请求参数或数据绑定到对应入参对象(自定义对象)或者解决复杂类型的数据绑定

    @InitBinder

    ​ public void initBinder(WebDataBinder webDataBinder)

    实现Formatter接口

    注册添加

    ​ 通过WebDataBinder的addCustomFormatter方法添加

    三、Asynchronous Requests

    servlet中的异步

    @WebServlet(asyncSupported=true)

    request.startAsync()

    AsyncContext

    ​ 1.start(Runnable runnable)

    ​ 2.addListener()
    ​ 监听异步的事件

    ​ AsyncListener
    ​ onComplete
    ​ onTimeout
    ​ onError
    ​ onStartAsync

    ​ 3.getRequest

    ​ 4.getResponse

    把曾经失去的全部补回来! ---一位在“生死边缘”徘徊的JAVA程序猿
  • 相关阅读:
    1 学习wcf 编写简单的WCF服务流程 并发布在IIS上
    通过FormData对象可以组装一组用 [XMLHttpRequest]发送请求的键/值对,它可以更灵活方便的发送表单数据。
    总结下抽象类Abstract和虚方法Virtual(易混点)
    mac VirtualBox虚拟机装CentOS,并配置网络,使其发布的静态网站能访问
    CentOS 7 1810版本不能使用yum 命令
    C# 选取本月周六日方法
    使用Newtonsoft序列化对象,实现深拷贝
    linq to sql 增删改查
    C# 对象对比是否相等 工作笔记
    zabbix server和zabbix agent的安装
  • 原文地址:https://www.cnblogs.com/shi-tian/p/10285367.html
Copyright © 2020-2023  润新知