@JFinal 你好,想跟你请教个问题:老大,想请教一下问题。
controller中通过getPara()方法获取传过来的参数,但假定用户参数是不可信的,就要在每个action中都要校验一下参数,比如/article/detail/1,这个url,就需要校验数据库中是否有1的存在,1是否是正确的字段,长度,为空等等情况。
这时候如果把校验写在validator中,就需要在单独定义一个validator类,这样很不直观,而且很麻烦,一个controller类可能要对应好几个validator类。我尝试过在controller中定义validator子类,但是这样会报错,好像是不支持这种内部类。请老大指点一下该怎么办比较好一点?或者说我考虑的这种校验是否有必要?
前面回复多了太乱,再开一贴来说明我的命名原则。我的原则大概分两块:
"......就需要校验数据库中是否有1“的存在,这种说法本身就不合适,JFinalValidator只是针对于请求时的参数,而对数据库中的数据进行判断或者操作是业务的事情,应该放在model或者业务层中。
回复 @RamNight:2.一般情况下Validator和Controller名取名相同,如:UserController和UserValidator。例外也有,如:LoginValidator和IndexController,这是将登录操作放索引Controller中。回复 @RamNight:说命名原则分两块:1.Validator和Controller放一块或在Controller包名下建个validator的子包,将Validator放子包里,不显凌乱。回复 @糊搞:请教一下你的命名规则?回复 @RamNight:混乱!我从来没认为会混乱,而且在实际项目中也没有出现过混乱。如果你实际使用时出现了混乱,说明你在乱用。。。回复 @糊搞:但这样命名会出现问题,显得比较乱。比如有的validator可以复用,但大部分是不可以复用的,命名的话就需要同时兼顾可复用和不可复用的。因为我是这么做的才会提这样的问题,因为validator已经很乱了。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。