在我的struts2应用程序中,我有一个带有“phone”字段的jsp页面,我已经使用
应用了验证<field-validator type="int">
<param name="min">4</param>
<param name="max">20</param>
<message key="errors.range"/>
</field-validator>
int type min和max对我没有验证,当我尝试给出正确的大于4的数字时,它给出一个负数
这是我的jar文件
commons-beanutils-1.8.0.jar
commons-digester-1.8.1.jar
commons-fileupload-1.2.1.jar
commons-logging-1.1.jar
freemarker-2.3.13.jar
mail.jar
ognl-2.6.11.jar
spring.jar
struts2-core-2.1.6.jar
struts2-dojo-plugin-2.1.6.jar
struts2-spring-plugin-2.1.6.jar
struts2-tiles-plugin-2.1.6.jar
tiles-api-2.1.2.jar
tiles-compat-2.1.2.jar
tiles-core-2.1.2.jar
tiles-jsp-2.1.2.jar
tiles-servlet-2.1.2.jar
xwork-2.1.2.jar
答案 0 :(得分:0)
我想您正在尝试验证电话长度(作为字符串)介于4到20之间,这是完全不同的事情。查看String Length validator
请记住:对于凡人而言,“电话号码”是一个数字。对于程序员来说,“电话号码”不是数字,而是字符串(由数字和可能的其他字符组成)。信用卡号或邮政编码也是如此。一条经验法则:如果你可以远程想象你会用它做一些算术(比如一笔钱),那就是一个数字。如果要保留(甚至是假设的)前导零,或者它可能包含一些非数字字符,那么它不是数字而是字符串。
答案 1 :(得分:0)
也许你应该尝试正则表达式,这是一个例子
<validator type="regex">
<param name="fieldname">personBean.phoneNumber</param>
<param name="expression"><![CDATA[\d{3}-\d{3}-\d{4}]]></param>
<message>Phone number must be entered as 999-999-9999.</message>
</validator>
该链接有助于http://www.itinpractice.com/tutorials/397/struts-2-form-validation-using-xml.html