设为首页 加入收藏

TOP

框架进行时——SpringMVC流程简析(一)(六)
2023-07-25 21:33:33 】 浏览:120
Tags:SpringMVC 程简析
pMethod||Locale||TimeZone||ZoneId).class == paramType; }
  • 16 = {ServletResponseMethodArgumentResolver@6908}

    // 参数类型是 ServletResponse、OutputStream 或 Writer 或它们的子类
    public boolean supportsParameter(MethodParameter parameter) {
      return (ServletResponse || OutputStream || Writer).class.isAssignableFrom(parameter.getParameterType());
    }
    
  • 17 = {HttpEntityMethodProcessor@6909}

    // 参数类型是 HttpEntity 或 RequestEntity
    public boolean supportsParameter(MethodParameter parameter) {
      Class<?> parameterType = parameter.getParameterType();
      return (parameterType == HttpEntity.class)  || (parameterType == RequestEntity.class);
    }
    
  • 18 = {RedirectAttributesMethodArgumentResolver@6910}

    // 参数类型是 RedirectAttributes 或其子类
    public boolean supportsParameter(MethodParameter parameter) {
      return RedirectAttributes.class.isAssignableFrom(parameter.getParameterType());
    }
    
  • 19 = {ModelMethodProcessor@6911}

    // 参数类型是 Model 或其子类
    public boolean supportsParameter(MethodParameter parameter) {
      return Model.class.isAssignableFrom(parameter.getParameterType());
    }
    
  • 20 = {MapMethodProcessor@6912}

    /*
     * 同时满足以下两个条件:
     *   1. 参数类型是 Map 或其子类
     *   2. 参数没有标任何注解
     */
    public boolean supportsParameter(MethodParameter parameter) {
      return (Map.class.isAssignableFrom(parameter.getParameterType()) && parameter.getParameterAnnotations().length == 0);
    }
    
  • 21 = {ErrorsMethodArgumentResolver@6913}

    // 参数类型是 Errors 或其子类
    public boolean supportsParameter(MethodParameter parameter) {
      return Errors.class.isAssignableFrom(parameter.getParameterType());
    }
    
  • 22 = {SessionStatusMethodArgumentResolver@6914}

    // 参数类型是 SessionStatus 或其子类
    public boolean supportsParameter(MethodParameter parameter) {
      return parameter.getParameterType() == SessionStatus.class;
    }
    
  • 23 = {UriComponentsBuilderMethodArgumentResolver@6915}

    // 参数类型是 UriComponentsBuilder 或 ServletUriComponentsBuilder
    public boolean supportsParameter(MethodParameter parameter) {
      Class<?> parameterType = parameter.getParameterType();
      return (parameterType == UriComponentsBuilder.class)  || (parameterType == ServletUriComponentsBuilder.class);
    }
    
  • 24 = {PrincipalMethodArgumentResolver@6916}

    // 参数类型是 Principal 或其子类
    public boolean supportsParameter(MethodParameter parameter) {
      return Principal.class.isAssignableFrom(parameter.getParameterType());
    }
    
  • 25 = {RequestParamMethodArgumentResolver@6917}

    /*
     * 满足以下四类条件中的任意一类:
     *   1. 参数标有 @RequestParam 注解、且类型不是 Map 或其子类
     *   2. 参数标有 @RequestParam 注解、且类型是 Map 或其子类、且 @RequestParam 注解的"name"或"value"属性不为空
     *   3. 参数类型是 MultipartFile 或 Part(包括它们的数组或集合)、且没有标 @RequestPart 注解
     *   4. 参数类型不简单、且没有标 @RequestPart 注解
     */
    public boolean supportsParameter25(MethodParameter parameter) {
      if (parameter.hasParameterAnnotation(RequestParam.class)) {
        if (Map.class.isAssignableFrom(parameter.nestedIfOptional().getNestedParameterType())) {
          RequestParam requestParam = parameter.getParameterAnnotation(RequestParam.class);
          return (requestParam != null && StringUtils.hasText(requestParam.name()));
        } else {
          return true;
        }
      } else {
        if (parameter.hasParameterAnnotation(RequestPart.class)) {
          return false;
        }
        parameter = parameter.nestedIfOptional();
        if (MultipartResolutionDelegate.isMultipartArgument(parameter)) {
          return true;
        } else {
          return B
  • 首页 上一页 3 4 5 6 7 下一页 尾页 6/7/7
    】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
    上一篇第2-3-7章 个人网盘服务接口开发-.. 下一篇java8 (jdk 1.8) 新特性——Lambda

    最新文章

    热门文章

    Hot 文章

    Python

    C 语言

    C++基础

    大数据基础

    linux编程基础

    C/C++面试题目