在不创建新类并将其作为验证器类型添加的情况下,我想在XWork中重用一些正则表达式。
我似乎找不到正确语法的在线教程。我想改变以下几点:
<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>这样的事情:
<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和语法的正确位置是什么?
发布于 2014-06-17 08:52:02
将表达式放在BaseAction中由getter方法公开的字符串中(由所有其他方法扩展的操作):
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文件中调用它:
<field name="example">
<field-validator type="regex">
<param name="regexExpression">${ridiculouslyLongRegexExpression}</param>
</field-validator>
</field>更多关于正式文件的信息。
https://stackoverflow.com/questions/24250737
复制相似问题