您的位置:首页 > 编程语言 > Java开发

Struts输入校验(2)

2013-08-01 10:05 274 查看
1  类型转换和输入校验冲突问题解决方法
    当类型转换失败和输入校验都出现问题的时候,两个错误信息都显示了,但是实际只需要一条信息即可
    如图:
    


 在struts2 标签中都有一个theme属性,表示主题的意思 theme="simple"的话,表示不再会有Struts2 的错误提示,但是需要放在DIV中的
 进行重新排版

 同时也可以将在表单级中定义simple即可,重新排版增加表格和DIV都可以,同时label也不起作用的了,需要额外添加
这样就可以解决struts2 类型转换盒输入校验冲突问题

2 Action和Field级别的错误显示 
  addActionError 是表示验证时错误的,但是不会显示,当有一个ActionError的时候,验证就不通过了
如果需要显示ActionError中的信息,定义在<s:actionerror/>
addFieldError  会将错误信息显示出来,当不需要显示出来的时候,就用addActionError即可
struts2可以显示错误信息只能显示FieldError中的,不能显示ActionError中的

3  如果需要在action中封装多个业务方法,在请求的时候struts2.xml对应的method 方法即可
    在Action中书写对应的方法与execute() 方法一致
    例如:<action name="register" class="com.test.action.RegisterAction" method="abc">
           <result name="success">/success.jsp</result>
           <result name="input">/register2.jsp</result>
       </action>
 对应方法:
    public String abc() throws Exception {
}
    实际就是不执行Struts默认的方法,执行我们自己指定的方法
 注意:  如果一个Action中有多个业务方法,需要不同验证的时候默认为validate() 
            需要重写写对应的验证方法:
           例如:方法abc 中验证为
           public voud validateAbc()
{
                 //validateAbc() 函数名称首字母需要大写
//这个就是abc()方法对应的的验证方法
}

但是Struts2还是会执行validate方法,解决方法有不在validate方法中书写验证逻辑
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: