zoukankan      html  css  js  c++  java
  • SpringMVC之自定义argumentResolver

    在RequestMappingHandlerAdapter.afterPropertiesSet--->getDefaultArgumentResolvers方法中,先往argumentResolvers属性中添加默认的一批去处理有注解的参数,再添加一批处理特定对象类型的参数,此时还剩下的就是其他对象类型的参数没有处理,那么接下来的优先级正好是添加用户自定义的customArgumentResolvers,在这里可以自定义一个赋值参数的解析器。最后是添加RequestParamMethodArgumentResolver和ServletModelAttributeMethodProcessor两个,前者是处理@RequestParam、@RequestPart和基础类型的,后者是处理@ModelAttribute注解和其他所有非基础类型的。但是注解和类型之间各有个开关,在上面说的第一批添加的时候也添加了这两个类,只不过开关是开启的,所以只处理注解,不处理类型。

    所以我们自定义的argumentResolver是优先级高于最后两个的。这个道理和SpringMVC返回值处理中的HttpMessageConverter是一样的

  • 相关阅读:
    返回top写法技巧
    实现页面跳转至本页面的某个地方
    电信项目总结
    Struts2 ---- result
    Oracle定时器
    Oracle序列重置
    struts2---访问WEB
    分析函数
    exists 的简单介绍
    Oracle 部门员工查询
  • 原文地址:https://www.cnblogs.com/chuliang/p/14824760.html
Copyright © 2011-2022 走看看