Struts2 + Hibernate3 + Spring2 整合项目,分层为action,service,DAO.
例如:从页面得到数据后,(页面有JS校验) 进入JAVA代码,不进行校验是万万不可的! 因为无法保证JS的可靠性!
那么关于对该数据的校验应该放在哪里进行呢??
action中?使用validate?还是在service中,逐属性检查? 反正,我认为一定不会将数据传递到DAO才进行校验.
大家都是如何校验页面传递来的数据的呢?

解决方案 »

  1.   

    主要在service层里校验,有时也在action层里校验下(尽量少),我都是这样干嘀,dao层关注数据库处理,肯定不会在那里校验
      

  2.   

    validate中校验啊,
    service中应该只是做数据逻辑的判断了。
      

  3.   

    ACTION类里就有继承的验证方法啊,你可以重写该方法
      

  4.   

    struts配置文件进行判断,当然是越在前面校验那是最好的。若是传入到服务器,则肯定是需要开销的,不建议这样做
      

  5.   

    Java EE 6 中新增了 JSR 303 -- Bean Validation,使用 Annotation 来标注数据传输对象的校验格式。J2SE 环境中的 Tomcat 需要添加 Bean Validation 的规范包和实现包,使用拦截器进行验证。
      

  6.   

    当然了,Bean Validation 相对而言还是新生事务(去年 11 月 16 日才正式发布)。有兴趣的话,可以到 JCP 网站上下载 JSR 303 的规范文档和参考实现包。http://jcp.org/en/jsr/detail?id=303
      

  7.   

    视校验的对象分地方校验,如非空可以js或validate中校验,基本页面表单数据验证用validate,
    service中做数据逻辑的判断了,必要时还是有必要访问dao层进行校验的,比如插入一条记录得看数据库是否已存在
      

  8.   


    我这里有个Spring的帮助文档 里面有一个章节是专门讲Spring的验证方式的 主要是针对后台的BEAN
    既然你知道不能相信JS的验证 那你应该明白 每个阶段都有每个阶段需要确认的事情 每个阶段的验证能保证每个阶段的正常运行就足够了 这就是校验器做的工作(至少保证程序正常运行不能出错) 其他的 比如你们业务的特殊业务上的验证 都放到SERVICE中吧