Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Info

The example code for this tutorial, form_xml_validation, is available for checkout at https://svngithub.apache.org/repos/asf/struts/sandbox/trunk/struts2examples/Image Removedcom/apache/struts-examples

Introduction

In this tutorial we'll cover how to validate a user's input in form fields using Struts 2's XML validation methodology. In the Form Validation tutorial we discussed validating a user's input using the validate method in the Action class. Using a separate XML validation file gives you the ability to use validators built-in to the Struts 2 framework.

...

In the XML validation file (for this example that is EditAction-validation.xml), is this XML:

Code Block
xmlxmltitleXML Validator Required String


<!DOCTYPE validators PUBLIC
 "-//OpenSymphonyApache GroupStruts//XWork Validator 1.0.23//EN"
 "http://wwwstruts.opensymphonyapache.comorg/xworkdtds/xwork-validator-1.0.23.dtd">

<validators>
 <validator type="requiredstring">
 	<param name="fieldname">personBean.firstName</param>
 	<message>First name is required.</message>
 </validator>
</validators>

...

Code Block
xml
xml
titleEmail Validator


 <validator type="requiredstring">
 	<param name="fieldname">personBean.email</param>
 	<message>Email address is required.</message>
 </validator>
 <validator type="email">
 	<param name="fieldname">personBean.email</param>
 	<message>Email address not valid.</message>
 </validator>

...

Code Block
xml
xml
titleREGEX Validator


<validator type="requiredstring">
 	<param name="fieldname">personBean.phoneNumber</param>
 	<message>Phone number is required.</message>
 </validator>
<validator type="regex">
	<param name="fieldname">personBean.phoneNumber</param>
	<param name="expressionregex"><![CDATA[\d{3}-\d{3}-\d{4}]]></param>
	<message>Phone number must be entered as 999-999-9999.</message>
</validator>

...

Code Block
xml
xml
titleFieldExpression Validator


<validator type="fieldexpression">
	<param name="fieldname">personBean.carModels</param>
	<param name="expression"><![CDATA[personBean.carModels.length > 0]]></param>
	<message>You must select at least one car model.</message>
</validator>

...