论坛首页 Java企业应用论坛

关于struts2的验证问题

浏览 7473 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-07-18   最后修改:2011-07-18
   自我感觉struts2的验证比struts1的验证做得还差,针对于一个action,其验证要么针对于整个action,这种方式对于一个action里面有多个不同方法的类,很不适用;要么就是针对于方法,这种方式会产生多个配置文件,总之用起来非常别扭。

   客户端验证,需要使用struts2的标签才可以,否则即使设定了validate=true都没有用,但是使用其标签的时候,则会自动给你生成table,这一点又非常的不适用,如果我需要自己设定一些样式,把label与html元素分开设定样式,那就比较麻烦,有些朋友说可以设成simple,如果设成simple,就不会有客户端验证了。

  整体上感觉,这一块做得越来越差了。

  
   发表时间:2011-07-19  
直接设为theme=simple。验证会js来做。后台验证配置validate.xml
0 请登录后投票
   发表时间:2011-07-19  
szgaea 写道
   自我感觉struts2的验证比struts1的验证做得还差,针对于一个action,其验证要么针对于整个action,这种方式对于一个action里面有多个不同方法的类,很不适用;要么就是针对于方法,这种方式会产生多个配置文件,总之用起来非常别扭。

   客户端验证,需要使用struts2的标签才可以,否则即使设定了validate=true都没有用,但是使用其标签的时候,则会自动给你生成table,这一点又非常的不适用,如果我需要自己设定一些样式,把label与html元素分开设定样式,那就比较麻烦,有些朋友说可以设成simple,如果设成simple,就不会有客户端验证了。

  整体上感觉,这一块做得越来越差了。

  

为什么不在action中直接写:

public void validate待验证的方法名(){
    this.addActionError("你的错误提示");
}
0 请登录后投票
   发表时间:2011-07-19  
wangflood 写道
直接设为theme=simple。验证会js来做。后台验证配置validate.xml



这是一种解决办法

我在这里只是针对struts2的客户端验证,发表一下自己的看法
0 请登录后投票
   发表时间:2011-07-19  
george_space 写道
szgaea 写道
   自我感觉struts2的验证比struts1的验证做得还差,针对于一个action,其验证要么针对于整个action,这种方式对于一个action里面有多个不同方法的类,很不适用;要么就是针对于方法,这种方式会产生多个配置文件,总之用起来非常别扭。

   客户端验证,需要使用struts2的标签才可以,否则即使设定了validate=true都没有用,但是使用其标签的时候,则会自动给你生成table,这一点又非常的不适用,如果我需要自己设定一些样式,把label与html元素分开设定样式,那就比较麻烦,有些朋友说可以设成simple,如果设成simple,就不会有客户端验证了。

  整体上感觉,这一块做得越来越差了。

  

为什么不在action中直接写:

public void validate待验证的方法名(){
    this.addActionError("你的错误提示");
}



那你就不是通过配置了,提倡还是以配置为主吧
0 请登录后投票
   发表时间:2011-07-19  
szgaea 写道
george_space 写道
szgaea 写道
   自我感觉struts2的验证比struts1的验证做得还差,针对于一个action,其验证要么针对于整个action,这种方式对于一个action里面有多个不同方法的类,很不适用;要么就是针对于方法,这种方式会产生多个配置文件,总之用起来非常别扭。

   客户端验证,需要使用struts2的标签才可以,否则即使设定了validate=true都没有用,但是使用其标签的时候,则会自动给你生成table,这一点又非常的不适用,如果我需要自己设定一些样式,把label与html元素分开设定样式,那就比较麻烦,有些朋友说可以设成simple,如果设成simple,就不会有客户端验证了。

  整体上感觉,这一块做得越来越差了。

  

为什么不在action中直接写:

public void validate待验证的方法名(){
    this.addActionError("你的错误提示");
}



那你就不是通过配置了,提倡还是以配置为主吧

“提倡以配置为主”的理由?
优势?
0 请登录后投票
   发表时间:2011-07-19  
george_space 写道
szgaea 写道
george_space 写道
szgaea 写道
   自我感觉struts2的验证比struts1的验证做得还差,针对于一个action,其验证要么针对于整个action,这种方式对于一个action里面有多个不同方法的类,很不适用;要么就是针对于方法,这种方式会产生多个配置文件,总之用起来非常别扭。

   客户端验证,需要使用struts2的标签才可以,否则即使设定了validate=true都没有用,但是使用其标签的时候,则会自动给你生成table,这一点又非常的不适用,如果我需要自己设定一些样式,把label与html元素分开设定样式,那就比较麻烦,有些朋友说可以设成simple,如果设成simple,就不会有客户端验证了。

  整体上感觉,这一块做得越来越差了。

  

为什么不在action中直接写:

public void validate待验证的方法名(){
    this.addActionError("你的错误提示");
}



那你就不是通过配置了,提倡还是以配置为主吧

“提倡以配置为主”的理由?
优势?



声明式验证已经帮我们实现了不少的验证规则,通过一些简单配置就可以完成验证工作,但是方法硬编码可能要做很多代码工作。
0 请登录后投票
   发表时间:2011-07-19  
struts2验证框架确实还有待加强:
1、要么针对Action类验证,要么针对method验证,前者导致很多不该验证的都验证了,后者导致xml验证文件一大堆
2、不支持占位符


优点也很明显:
1、使用xml配置,直接减少大量Action验证代码
2、验证规则可重用性高,利于维护
0 请登录后投票
   发表时间:2011-07-20  
白糖_ 写道
struts2验证框架确实还有待加强:
1、要么针对Action类验证,要么针对method验证,前者导致很多不该验证的都验证了,后者导致xml验证文件一大堆
2、不支持占位符


优点也很明显:
1、使用xml配置,直接减少大量Action验证代码
2、验证规则可重用性高,利于维护



一切为了重用。

一直在纠结,目的是为了重用,但是验证逻辑和实际业务代码也被割裂了。

  1. 这些页面和验证逻辑,很多情况下,只要写一遍,并不会再次进行修改,貌似copy、粘贴也费不了多少事情,关键是验证和代码在一起了,看得清晰。
  2. 对于客户端验证,可以直接调用验证工具

“重用” vs “清晰”?

0 请登录后投票
   发表时间:2011-07-20  
validation.includeMethods  validation.excludeMethods
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics