您的位置:首页 > 编程语言 > Java开发

Struts 关于validator的regex验证

2016-07-23 18:28 281 查看
有的文章上写到其中的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[]]>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: