昨天写了一个日期格式参数解析的小例子。发现不够灵活。有一些问题。
这里我们今天用自定义注解+参数解析器HandlerMethodArgumentResolver 来实现这个功能,
首先写一个自定义的注解。仿照requestParament ,这是requestParament 的源码,target 目标作用于 参数上面。这里面@alias 是起别名,也就name 和value 是一样的。
required 是否必传,默认是true .
这是我们写的自定义的注解
在实现参数解析器,实现HandlerMethodArgumentResolver
supportsParameter:用于判定是否需要处理该参数分解,返回true为需要,并会去调用下面的方法resolveArgument。 resolveArgument:真正用于处理参数分解的方法,返回的Object就是controller方法上的形参对象。
supportsParameter必须要为true ,才能执行下面的。这里我们判断参数是否包含dateformat 注解。
先根据是否必须传的条件,判断有没有传送,再根据有没有默认值。
有的话就使用默认值。
我们来写代码测试一下啊。
这个是必须要传参数的,我们先测试不传参的。
看一下控制台,就是我们要的结果。
我们在试一下正常情况
再试一下默认值,修改一下Dataformat 里面的value 值