校验xml的命名:*-validation.xml。
dtd是从struts2例子里复制的:
字段校验相关信息:
那里面的type,name信息是从哪里得来的,这里正是要记录这个来源。
打开xwork的jar包:
打开如下包:
查看type信息,打开default.xml
查看name信息,打开type="
requiredstring"对应的class="
com.opensymphony.xwork2.validator.validators.RequiredStringValidator"
<
param
name
=
"trim"
>
true
</
param
>
trim对应的是 public void setTrim( boolean trim) { 里的trim
它设置的值 doTrim 默认是true。在这里,该标签可以省略。
dtd是从struts2例子里复制的:
- <!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN" "http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
- <field name="username">
- <field-validator type="requiredstring">
- <param name="trim">true</param>
- <message>username should not be blank!</message>
- </field-validator>
- <field-validator type="stringlength">
- <param name="minLength">6</param>
- <param name="maxLength">10</param>
- <message>username should be between ${minLength} and ${maxLength}!</message>
- </field-validator>
- </field>
打开xwork的jar包:
打开如下包:
查看type信息,打开default.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE validators PUBLIC
- "-//OpenSymphony Group//XWork Validator Config 1.0//EN"
- "http://www.opensymphony.com/xwork/xwork-validator-config-1.0.dtd">
- <!-- START SNIPPET: validators-default -->
- <validators>
- <validator name="required" class="com.opensymphony.xwork2.validator.validators.RequiredFieldValidator"/>
- <validator name="requiredstring" class="com.opensymphony.xwork2.validator.validators.RequiredStringValidator"/>
- <validator name="int" class="com.opensymphony.xwork2.validator.validators.IntRangeFieldValidator"/>
- <validator name="double" class="com.opensymphony.xwork2.validator.validators.DoubleRangeFieldValidator"/>
- <validator name="date" class="com.opensymphony.xwork2.validator.validators.DateRangeFieldValidator"/>
- <validator name="expression" class="com.opensymphony.xwork2.validator.validators.ExpressionValidator"/>
- <validator name="fieldexpression" class="com.opensymphony.xwork2.validator.validators.FieldExpressionValidator"/>
- <validator name="email" class="com.opensymphony.xwork2.validator.validators.EmailValidator"/>
- <validator name="url" class="com.opensymphony.xwork2.validator.validators.URLValidator"/>
- <validator name="visitor" class="com.opensymphony.xwork2.validator.validators.VisitorFieldValidator"/>
- <validator name="conversion" class="com.opensymphony.xwork2.validator.validators.ConversionErrorFieldValidator"/>
- <validator name="stringlength" class="com.opensymphony.xwork2.validator.validators.StringLengthFieldValidator"/>
- <validator name="regex" class="com.opensymphony.xwork2.validator.validators.RegexFieldValidator"/>
- </validators>
- <!-- END SNIPPET: validators-default -->
- package com.opensymphony.xwork2.validator.validators;
- import com.opensymphony.xwork2.validator.ValidationException;
- public class RequiredStringValidator extends FieldValidatorSupport {
- private boolean doTrim = true;
- public void setTrim(boolean trim) {
- doTrim = trim;
- }
- public boolean getTrim() {
- return doTrim;
- }
- public void validate(Object object) throws ValidationException {
- String fieldName = getFieldName();
- Object value = this.getFieldValue(fieldName, object);
- if (!(value instanceof String)) {
- addFieldError(fieldName, object);
- } else {
- String s = (String) value;
- if (doTrim) {
- s = s.trim();
- }
- if (s.length() == 0) {
- addFieldError(fieldName, object);
- }
- }
- }
- }
trim对应的是 public void setTrim( boolean trim) { 里的trim
它设置的值 doTrim 默认是true。在这里,该标签可以省略。