struts2输入校验笔记
<s:actionerror cssStyle='color:red' />显示actionError级别错误,
即在ancion里:this.addActionError("username invalid");
错误会显示在<s:actionerror cssStyle='color:red' />里
如果使用了struts2 标签
例如<s:textfield name="age" label="age" ></s:textfield>
也设置了类型转换验证:
invalid.fieldvalue.age=年龄信息输入不正确
而且在action里也验证age合法性,并且在anction里有this.addActionError("age invalid") 方法,
当age输入的不是数字的时候,会发生类型转换错误,在页面上显示‘年龄信息输入不正确’
且age被赋值为0,这时如果在anction里的age验证也不对 例如 age不能为0,这是还会在显示一条action级别的
错误:username invalid, 也就是addActionError里的信息
如果要只显示一条错误信息,可以修改一下age的表单:
<s:textfield name="age" label="age" theme="simple"></s:textfield>
加上theme="simple" 只生成简单的 text控件,这样就只显示action级别的错误“username invalid”
=====================================================
<result>/success.jsp</result>
<result name="input">/register.jsp</result>
</action>
调用register.action 生成RegisterAction 实例 如果有method 则默认调用method,这里调用abc方法
不调用execute()
如果RegisterAction.java 里有多个方法供不同的action调用 例如 有execute(),abc(),xyz(),
它们的验证方法要是不同的话 可以在RegisterAction.java 定义不同的验证方法,
例如abc()的验证方法是:validateAbc()
xyz():validateXyz()
然后如果还有validate()方法 则紧接着运行validate,只要有就会运行.
可以把validate()方法去掉 ,写一个validateExecute()专门验证execute()方法