一、验证总结
1、形式差别
代码:
1)重写validate(),验证action所有方法
2)validate方法名(),验证指定“方法名”的方法
Xml:
1)验证所有方法: ActionClassName-validation.xml
2)验证指定方法: ActionClassName-actionName-validation.xml
2、功能及作用差别
1)代码验证:
比较灵活,可以满足所有的需求。
比较繁琐,要写重复的验证判断逻辑!
适合: 表单字段较少的情况用!
2)XML验证:
通用,但不够灵活。
可以验证特定简单的业务。
适合: 验证表单字段较多,可以大大简化代码!(但配置文件过多)
二、验证的错误处理
Struts在进行数据效验的时候,验证失败,会返回input视图,要求我们要在struts.xml中配置input视图对应的错误页面!
1、配置:Struts.xml
<!-- 注册失败跳转到注册页面,显示失败信息 -->
<global-results>
<result name="input">/register.jsp</result>
</global-results>
2、Jsp显示错误
方式1:显示所有错误
<%@taglib uri="/struts-tags" prefix="s" %>
<!-- 显示的是struts在运行时期产生的所有错误 -->
<s:fielderror></s:fielderror>
方式2:显示指定的错误
<!-- 修改struts标签默认的样式: 不让换行 -->
<style type="text/css">
ul{
display: inline;
}
ul li{
display: inline;
color: red;
}
</style>
<!-- 显示指定的错误 -->
<s:fielderror fieldName="user.userName"></s:fielderror>
方式3:修改标签定义的模板(了解即可)
1)找到fielderror标签定义的模板文件:
Struts-core.jar\template\simple\ fielderror.ftl
2)把修改后的fielderror.ftl文件,放到src/ template/ simple/ fielderror.ftl,这样标签显示的样式就修改了!
3、案例展示:
1)register.jsp、UserAction-validation.xml
2)struts.xml配置
3)效果
未填写:
填写完成,点击注册后: