码迷,mamicode.com
首页 > Web开发 > 详细

SSM-WebMVC(三)

时间:2019-01-17 23:39:55      阅读:271      评论:0      收藏:0      [点我收藏+]

标签:model   contex   tco   实现   deferred   compile   app   apply   text   

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

buildscript {
    ext {
        springBootVersion = ‘2.0.6.RELEASE‘
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}
subprojects {
    apply plugin: ‘java‘
    apply plugin: ‘eclipse‘
    apply plugin: ‘org.springframework.boot‘
    apply plugin: ‘io.spring.dependency-management‘

    group = ‘com.iteng.zyn‘
    version = ‘1.0.0‘
    sourceCompatibility = 1.8

    repositories {
        mavenLocal() //maven本地仓库
//        maven {
//            url = "http://47.106.13.224:8081/nexus/content/repositories/thirdparty"
//        }
        maven {
            url = "http://maven.aliyun.com/nexus/content/groups/public"
        }
        mavenCentral()//maven中心仓库
    }


    ext {
        springCloudVersion = ‘Finchley.SR1‘
    }

    dependencies {
        compile(‘org.springframework.boot:spring-boot-starter-actuator‘)
        compile(‘org.springframework.boot:spring-boot-starter-web‘)
        compile(‘org.springframework.cloud:spring-cloud-starter‘)
        testCompile(‘org.springframework.boot:spring-boot-starter-test‘)
    }

    dependencyManagement {
        imports {
            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
        }
    }

}
buildscript {
    ext {
        springBootVersion = ‘2.0.6.RELEASE‘
    }
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
    }
}

subprojects {
    apply plugin: ‘java‘
    apply plugin: ‘eclipse‘
    apply plugin: ‘org.springframework.boot‘
    apply plugin: ‘io.spring.dependency-management‘


    group ‘com.example‘
    version ‘1.0-SNAPSHOT‘

    sourceCompatibility = 1.8

    repositories {
    mavenLocal() //maven本地仓库

    maven {
        url = "http://maven.aliyun.com/nexus/content/groups/public"
    }

    mavenCentral()//maven中心仓库
    }

    dependencyManagement {
        imports {
            mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
        }
    }

}

SSM-WebMVC(三)

标签:model   contex   tco   实现   deferred   compile   app   apply   text   

原文地址:https://www.cnblogs.com/shi-tian/p/10285367.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!