06
2019
06

参数校验和国际化

参数校验和国际化

修改前代码

controller代码:根据id删除对象。错误范例:

650.1.png

其中的lang参数我们需要去掉

service代码:出现和业务无关的参数local。错误范例:

650.2.png

修改后代码

controller代码

620.1.png

service代码

620.2.png

Controll的非业务代码如何去掉参考 Controller规范,下面说说去掉Local参数。

TIP业务代码里面不要出现和业务无关的东西,如local,MessageSource 。

去掉国际化参数还是使用的技术还是ThreadLocal。国际化信息可以放好几个地方,但建议不要放在每一个url上,除了比较low还容易出很多其他问题。这里演示的是放在cookie上面的例子:

# 用户工具类UserUtil

需要保存用户的国际化信息。

611.1.png

611.2.png

校验工具类CheckUtil

这里需要调用用户工具类得到用户的语言。还有就是提示信息里面,需要支持传入变量。

# spring的静态方法注入

工具类里面使用spring的bean,使用了MethodInvokingFactoryBean的静态方法注入:

625.3.png

# jdk 的 import static

server里面调用 check 方法的时候没有出现类名。这里使用的jdk的import static 特性,可以在ide上配置,请自行google。

621.1.png

还有一小点注意,我建议参数非法的时候,把非法值打印出来,否则你又要浪费时间看是没有传呢还是传错了,时间就是这样一点点浪费的。

621.2.png

另外有些项目用valid来校验,从我实际接触来看,用的不多,可能是有短木板吧。如果你的项目valid就能满足,那就更加好了,不需要看了。但是大部分场景,校验比例子复杂N多,提示也千变万化,所以我们还是自己调用函数校验。


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。