执行流程
1.首先进行类型转换
2.然后进行输入校验(现实验证框架在是自定义校验)
3.如果上述过程出现了任何错误都不会再执行execute方法,会转向struts.xml中该action名input的result所对应的页面.
小结:
$1:显示错误信息
<s:form action="sys/LoginAction_execute" theme="simple">
<s:textfield name="user.name"></s:textfield><s:property value="errors['user.name'][0]"/>
<s:textfield name="user.age"></s:textfield>
<s:submit value="Login"></s:submit>
</s:form>
2种情况:
&1.如果不写上<" theme="simple">那么struts2会自动的把错误信息显示出来不用手工添加
如果手动添加错误信息不会覆盖自动的错误信息而是全部显示出来。
&2.如果写上<" theme="simple">那么struts2就不会自动的把错误信息显示出来则要手动添加
<s:property value="errors['user.name'][0]"/>来显示错误信息
&3. <s:fielderror></s:fielderror>显示所有的错误信息适用于 &1和&2都可以
验证框架的命名规范:ClassName-validation.xml或者ClassName-alias-validation.xml
ClassName==就是Action的 类名
alias==就是struts.xml中配置的action的名字
比如:
LoginAction-validation.xml
LoginAction-LoginAction_execute-validation.xml
验证框架中要写的字段校验
<validators>
<field name="user.name">
<field-validator type="requiredstring">
<message>密码不能为空</message>
</field-validator>
<field-validator type="stringlength">
<param name="minLength">3</param>
<message>最小长度是${minLength}</message>
</field-validator>
</field>
</validators>
type说明:
requiredstring 用来 规定一个字符串不能为null 和空字符("")
stringlength 规定长度的 范围maxLength 和minLength
空格默认的 情况下 是不被认可的 想要认可需要<parm name="trim">true</parm>
fieldexpression使用的是OGNL表达式来验证字段通过expression参数 指定要计算的OGNL表达式计算的结果为boolean如果为true通过
<parm name="expression">password1==password2</parm>
<message>密码和确认密码必须相同</message>
还有一种验证是校验器 验证上面的是字段验证
<validator type="requiredstring">
<param name="fieldName">username</param>
<message>username can't be blank!</message>
</validator>
<validator type="stringlength">
<param name="fieldName">username</param>
<param name="minLength">4</param>
<param name="maxLength">6</param>
<message>length of username should be between ${minLength} and ${maxLength}</message>
</validator>