首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在XWork验证器中重用regex

在XWork验证器中重用regex
EN

Stack Overflow用户
提问于 2014-06-16 19:25:19
回答 1查看 258关注 0票数 1

在不创建新类并将其作为验证器类型添加的情况下,我想在XWork中重用一些正则表达式。

我似乎找不到正确语法的在线教程。我想改变以下几点:

代码语言:javascript
复制
<field name="example">
    <field-validator type="regex">
       <param name="expression">[some ridiculously long regex expression like](0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)</param>
       <message key="example.error" />
    </field-validator>
</field>

这样的事情:

代码语言:javascript
复制
 <regex-pattern>
   <name>date-regex-pattern</name>
   <expression>[some ridiculously long regex expression like](0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)</expression>
 </regex-pattern>

<field name="example">
    <field-validator type="regex">
       <param name="expression">{date-regex-pattern}</param>
       <message key="example.error" />
    </field-validator>
</field>

或者通过链接其他现有类型来创建xml中的新字段--验证器类型,例如,最小和最大长度的所需字段以及要传递的正则表达式。

XWork中的xml和语法的正确位置是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-17 08:52:02

将表达式放在BaseAction中由getter方法公开的字符串中(由所有其他方法扩展的操作):

代码语言:javascript
复制
private final static ridiculouslyLongRegexExpression 
                  = "(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/((19|20)\\d\\d)";

public getRidiculouslyLongRegexExpression(){
    return ridiculouslyLongRegexExpression;
}

然后使用regexExpression从XML文件中调用它:

代码语言:javascript
复制
<field name="example">
    <field-validator type="regex">
        <param name="regexExpression">${ridiculouslyLongRegexExpression}</param> 
    </field-validator>
</field>

更多关于正式文件的信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24250737

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档