struts2输入校验笔记

just posted @ 2009年3月20日 07:21 in struts2 , 1735 阅读

<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”

=====================================================

<action name="register" class="com.test.action.RegisterAction" method="abc">
        <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()方法

  • 无匹配
  • 无匹配

登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter