struts2校验
Struts2提供兩種校驗規(guī)則:字段校驗器配置風(fēng)格和非字段配置風(fēng)格。
字段校驗器的格式:
<validators>
<field?name=”被校驗的字段名”>
<field-validator?type=”校驗器類型名”>
<param?name=”參數(shù)名”>參數(shù)值</param>
<!—可以有多個參數(shù)-->
<message?key=”I8Nkey”>校驗失敗時的提示信息</message>
</field-validator>
</field>
<!--下一個要校驗的字段à
</validators>
字段校驗器以<field>元素為基本元素,該元素的name屬性用來指定被校驗的字段。如果該字段需要多個校驗規(guī)則,可以使用多個<field>元素來增加校驗規(guī)則(也就是一個字段多個校驗器)。子元素<field-validator>用來指定校驗規(guī)則,具體使用哪個校驗器,這取決與屬性type.
<param>元素用來校驗器傳遞參數(shù),可以有多個參數(shù)。<message>元素用來指定校驗器校驗失敗是的提示信息,其屬性key用來指定國際化信息對應(yīng)的可以。
非字段校驗器配置風(fēng)格
對于非字段校驗器,是以校驗器優(yōu)先進行配置的。在這種情況下,以<validator>為基本元素(當然,根元素仍然是<validators>),在根元素下可以多個<validator>元素,每個<validator>元素的形式如下:
<validator?type=”校驗器類型名”>
<param?name=”fieldName”>需要被校驗的字段名稱</param>
<!--下面的param元素可以有0個或多個-->
<param?name=”參數(shù)名”>參數(shù)值</param>
<message?key=”I8Nkey”>校驗失敗時的提示信息</message>
</validator>
每一個<validator>元素定義一個校驗規(guī)則,必須為該元素的type屬性指定值,決定使用的校驗器的名字。由于校驗器配置風(fēng)格是以校驗器優(yōu)先的,所以還要為校驗指定一個被校驗的字段,也就是要校驗的Action屬性,可以在<param?name=”fieldName”>元素中指定,另外還可以通過多個<param>元素來向校驗器傳遞一些參數(shù)。最后同樣用<message>元素來指定校驗失敗時的提示信息,其屬性key用來指定國際化信息?對應(yīng)的key.
Eg:
<validators>
<validator?type=”requiredstring”>
<param?name=”fieldName”>name</param>
<message>姓名不能為空!</message>
</validator>
<validator?type=”requiredstring”>
<param?name=”fieldName”>pass</param>
<message>密碼不能為空!</message>
</validator>
</validators>
規(guī)定的這些校驗規(guī)則是在?xwork2-2.0.4.jar中
/com/opensymphony/xwork2/validator/validators/default.xml
<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="long"?class="com.opensymphony.xwork2.validator.validators.LongRangeFieldValidator"/>
????<validator?name="short"?class="com.opensymphony.xwork2.validator.validators.ShortRangeFieldValidator"/>
????<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"/>
????<validator?name="conditionalvisitor"?class="com.opensymphony.xwork2.validator.validators.ConditionalVisitorFieldValidator"/>
</validators>
總結(jié)
- 上一篇: Win7下Android模拟器中没有3G
- 下一篇: 美海军下一代战略导弹核潜艇”