Struts 关于validator的regex验证

来源:互联网 发布:注册淘宝也是支付宝 编辑:程序博客网 时间:2024/06/05 22:59

有的文章上写到其中的param name为"expression",版本问题,实测应该为regex,或regexExpression,

网上查到的资料“数据校验的时候如果是使用正则表达式需要注意2.3.16这个版本中的参数名作了修改,不是"expression",而是"regexExpression"。



<field name="user.userLoginName"><field-validator type="requiredstring"><message>用户名不能为空</message></field-validator><field-validator type="<span style="color:#ff0000;">regex</span>"><param name="regex">^[\w\d_]{6,30}$</param><message>用户名由字母、数字或"_"组成,长度6-30位</message></field-validator></field>


源代码

public class RegexFieldValidator extends FieldValidatorSupport {    private static final Logger LOG = LoggerFactory.getLogger(RegexFieldValidator.class);   <span style="color:#ff0000;"> private String regex;</span>    <span style="color:#ff0000;">private String regexExpression;</span>    private Boolean caseSensitive = true;
。。。。。。。
</pre><pre code_snippet_id="1780114" snippet_file_name="blog_20160723_5_2533159" name="code" class="html">    public String getRegex() {        if (StringUtils.isNotEmpty(regex)) {            return regex;        } else if (StringUtils.isNotEmpty(regexExpression)) {            return (String) parse(regexExpression, String.class);        } else {            return null;        }    }

有的会加上CDATA,例如下面的 

<param name="regex"><![CDATA[\d{3}-\d{3}-\d{4}]]></param>


摘自百度百科——术语 CDATA 指的是不应由 XML 解析器进行解析的文本数据(Unparsed Character Data)。

主要是xml文件对于一些特定符号来说可能解析失败,所以加上这个比较保险,前面格式是固定的<![CDATA[]]>


0 0
原创粉丝点击