1.生成自己的注解(为了确定在哪些位置使用)
/**
* 关闭patch delete的model处理,否则会报错
*/
@Target({
ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface AliasProcessor {
}
/**
* 处理Get 请求参数的驼峰问题
* @author lw
*/
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface ValueFrom {
/**
* 参数名(别名)列表
*/
String[] value();
}
2.实现自己的ServletModelAttributeMethodProcessor
/**
* 为了减少使用 @RequestPath 将get参数封装到实体类中 重写ModelAttributeMethodProcessor
* 注:由于get请求为非raw请求,spring默认使用@ModelArrtribute注解,不会自动将下划线的数据转为驼峰数据
* 所以需要自定义一个处理器,进行该操作 *
* @author lw
*/
public class AliasModelAttributeMethodProcessor extends ServletModelAttributeMethodProcessor {
private ApplicationContext applicationContext;
/**
* 过滤掉patch请求,防止报错
*/
@Override
public boolean supportsParameter(MethodParameter parameter) {
return parameter.getMethodAnnotation(AliasProcessor