对于像数据的验证,应该放在action层还是service层?
这两个层各自的具体职责是什么?

解决方案 »

  1.   

    看看http://blog.csdn.net/zc2087/article/details/6286733
    action对应的就是Controller,service对应Model,看了就清楚了
      

  2.   

    有很多验证的框架什么的,这个在action获取到前台页面数据的时候就可以效验了。
    个人认为:数据效验应该存在于action之前也就是在页面上做好效验,同时action在获取到数据的时候再做一次效验比较好。action就相当于一个窗口,它就应该筛选出满足条件的和过滤掉不满足条件的。
    service就相当于一个服务者,为action分派的任务进行处理。
      

  3.   

    没有定论,我们一般把无业务语义的校验放在action层,用validation做,比如数据类型、长度、格式等;业务语义类校验则放在service层。但实际操作中不一定那么清晰,所以笼统的理解是:
    1、如果可以独立完成不依赖于其它数据就能做的校验,放在了action;比如检查身份证号码是否合规;
    2、如果校验需要依赖于其它数据才能完成,放在了service层;比如银行转帐的时候,检查账户是否有余额,这就是存在数据依赖的。
      

  4.   

    前台先用js校验,完了到action再进行校验。service负责拿数据去把。
    比如登录,前台先进行基本的校验,比如不能为空。然后到action后,拿到用户名密码,调用service去取相同用户名的用户密码,在action进行比较即可。
      

  5.   

    验证其实也分几种的。
    1.规则验证。这个主要是几种在前台jsp,js。比如要验证邮箱格式,手机格式,输入字符的长度,这类的话放在前台验证,主要在js里面。
    2.业务逻辑验证(估计这个就是lz要的)。这里要说下action和service的各自职能。service为业务层,负责和dao层交互,根据dao返回的值整理我们需要的数据格式。action主要做业务逻辑判断和功能跳转。所以,作为系统的业务逻辑验证就放这里了
      

  6.   

    简单验证就在前端验证结束,业务逻辑判断应该交给action。
      

  7.   

    楼主,,
    action层一般放的都是操作数据的代码,,service层放的是对整个web项目的数据验证啊,,国际化啊,,
      

  8.   

    js验证  action层也要验证
      

  9.   

    只要你跟db打交道,按照mvc來做,肯定放在controller中。controller 調用service,service調用dao執行。
      

  10.   

    service负责数据的读写以及根据各种条件读写,action确保数据正确的读写
      

  11.   

    分客户端验证和服务器端验证  客户端验证就是用js来验证客户的误操作 来降低服务器端验证的压力,进一步进行服务器端的验证 就是在 action调用service之前进行最后一次验证用户的信息
      

  12.   

    我有个疑问,
    业务逻辑类型的校验 和 数据操作 虽然都在service层,但不是一个方法,也不是相互嵌套,而是由action顺序执行这些service,那么他们的事务就不是一套事务。校验和业务操作不是一个事务就不会锁表,那么校验后,业务操作前被其他业务做了数据操作,这时候再进行当前的业务操作就是在脏数据的基础上干的吧??
    难道只能在service做各种嵌套,而在action中就只有调用一个service方法吗?
      

  13.   

    不需要和数据库打交道的放在jsp里面的js去校验,尽量减少服务器的负担(大部分都是可以搞定的)。。设计到数据交互的放在action。我基本上就是这么写的。当然有些诶东西必须放在server里面。。
      

  14.   

    最好是jsp里用js验证了,js验证不了的交给action去验证
      

  15.   

    随便放 如果是ajax或者jquery验证有专门的地方。简单验证就放action.