1
回答
Spring 自定义注解 ElementType.PARAMETER
极速云服务器,低至1.04元/天>>>   

1.使用Valid进行验证时,是如何切入到Person这个类中的,具体实现的源码可否告知!

public String index(@Valid @RequestBody Person person, BindingResult result) {
        return "恭喜你了";  
 }

 

2.1自定义一个注解,如下:

@Target({ METHOD, FIELD, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
public @interface Help {
}

2.2:实现如下代码:

public class HelpMethodArgumentResolver implements HandlerMethodArgumentResolver{

    @Override
    public boolean supportsParameter(MethodParameter parameter) {
        return parameter.hasParameterAnnotation(Help.class);
    }

    @Override
    public Object resolveArgument(MethodParameter parameter,
            ModelAndViewContainer mavContainer, NativeWebRequest webRequest,
            WebDataBinderFactory binderFactory) throws Exception {
             ......................   
    }

}

2.3 添加如下自定义注解:

 @RequestMapping("/")
    public String index(@Help @RequestBody Person person, A a) {
        return "恭喜你了";  
    }

问题:

1.Valid 的实现机制是否和我自定义的一致,如果不一致,请告知源代码逻辑!

2.在2.3的步骤里,我将@Help和@RequestBody放在一起使用时,我2.2的步骤中parameter的下标是直接从1开始,而不是0开始的;也就意味着我获取不到person了;请问问题出在哪里?或者有什么解决方案!

 

<无标签>
举报
鶴嘯九天
发帖于2个月前 1回/76阅
顶部