WebWork依賴XWork的校驗架構,在action執行之前,來啟動對action的輸入資料的校驗規則的運用。
1,添加校驗器,在/WEB-INF/class添加一個名為validators.xml,添加自定義校驗器 xml 代碼
-
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.dtd">
- <validators>
- <validator name="required" class="com.opensymphony.xwork.validator.validators.RequiredFieldValidator"/>
- <validator name="requiredstring" class="com.opensymphony.xwork.validator.validators.RequiredStringValidator"/>
- <validator name="int" class="com.opensymphony.xwork.validator.validators.IntRangeFieldValidator"/>
- <validator name="double" class="com.opensymphony.xwork.validator.validators.DoubleRangeFieldValidator" />
- <validator name="date" class="com.opensymphony.xwork.validator.validators.DateRangeFieldValidator"/>
- <validator name="expression" class="com.opensymphony.xwork.validator.validators.ExpressionValidator"/>
- <validator name="fieldexpression" class="com.opensymphony.xwork.validator.validators.FieldExpressionValidator"/>
- <validator name="email" class="com.opensymphony.xwork.validator.validators.EmailValidator"/>
- <validator name="url" class="com.opensymphony.xwork.validator.validators.URLValidator"/>
- <validator name="visitor" class="com.opensymphony.xwork.validator.validators.VisitorFieldValidator"/>
- <validator name="conversion" class="com.opensymphony.xwork.validator.validators.ConversionErrorFieldValidator"/>
- <validator name="stringlength" class="com.opensymphony.xwork.validator.validators.StringLengthFieldValidator"/>
- validators>
2,打開校驗,在xwork定義interceptor,為需要開發校驗的action開啟攔截器,攔截器的校驗範圍 xml 代碼
- <interceptors>
- <interceptor name="adminOnly" class="adminInterceptor"/>
- <interceptor-stack name="defaultStack">
- <interceptor-ref name="exception"/>
- <interceptor-ref name="alias"/>
- <interceptor-ref name="servlet-config"/>
- <interceptor-ref name="prepare"/>
- <interceptor-ref name="i18n"/>
- <interceptor-ref name="chain"/>
- <interceptor-ref name="model-driven"/>
- <interceptor-ref name="fileUpload"/>
- <interceptor-ref name="static-params"/>
- <interceptor-ref name="params"/>
- <interceptor-ref name="conversionError"/>
- <interceptor-ref name="validation">
- <param name="excludeMethods">cancel,execute,delete,edit,list,defaultparam>
- interceptor-ref>
- <interceptor-ref name="workflow">
- <param name="excludeMethods">input,back,cancelparam>
- interceptor-ref>
- interceptor-stack>
- <interceptor-stack name="validationWorkflowStack">
- <interceptor-ref name="defaultStack"/>
- <interceptor-ref name="validation"/>
- <interceptor-ref name="workflow"/>
- interceptor-stack>-->
- <interceptor-stack name="fileUploadStack">
- <interceptor-ref name="fileUpload"/>
- <interceptor-ref name="defaultStack"/>
- interceptor-stack>
- <interceptor-stack name="adminCheck">
- <interceptor-ref name="defaultStack"/>
- <interceptor-ref name="adminOnly"/>
- interceptor-stack>
- interceptors>
3,校驗規則,每個action類,指定在 ActionName-validation.xml檔案中, xml 代碼
-
<!DOCTYPE validators PUBLIC "-//OpenSymphony Group//XWork Validator 1.0.2//EN"
"http://www.opensymphony.com/xwork/xwork-validator-1.0.2.dtd">
- <validators>
- <field name="customerCreditDetails.customer.id">
- <field-validator type="required">
- <message key="errors.required"/>
- field-validator>
- <field-validator type="stringlength">
- <param name="minLength">1param>
- <param name="trim">trueparam>
- <message key="errors.required"/>
- field-validator>
- field>
- <field name="customerCreditDetails.amount">
- <field-validator type="required">
- <message key="errors.required"/>
- field-validator>
- <field-validator type="double">
- <param name="minInclusive">1.0param>
- <message key="errors.intLeast"/>
- field-validator>
- field>
- <field name="customerCreditDetails.operateTime">
- <field-validator type="required">
- <message key="errors.required"/>
- field-validator>
- <field-validator type="date">
- <message key="errors.required"/>
- field-validator>
- field>
- <field name="customerCreditDetails.currencyType">
- <field-validator type="required">
- <message key="errors.required"/>
- field-validator>
- <field-validator type="int">
- <param name="min">1param>
- <message key="errors.required"/>
- field-validator>
- field>
- <field name="customerCreditDetails.payType">
- <field-validator type="required">
- <message key="errors.required"/>
- field-validator>
- <field-validator type="int">
- <param name="min">1param>
- <message key="errors.required"/>
- field-validator>
- field>
- >
這是簡單驗證