Struts2学习笔记
******输入校验:******
*.输入校验是建立在类型转换之上的。也就是说先进行类型转换再进行输入校验。
*.在JSP页面的Struts标签库里的表单<s:form action="xxx">里内置了输入校验的功能。所以在任何一个表单元素类型不匹配出错时单再回到表单页面时会在出错表单元素上方提示出错信息。
*.ActionSupport类是实现在Action接口,Action里定义了ERROR,INPUP,LOGIN,NONE,SUCCESS五个静态常量,这几个默认的常量要能用则用。如果成功则execute()方法里返回:return SUCCESS。(规范)
*.如果类型转换or输入校验出错时Struts会自动去找struts.XML里所配置的INPUT常量所对应的JSP页面,并转到此页面。如:<result name="input">/input.jsp</result>
*.ActionSupport里有个Validate()方法,这个方法什么都不做,如果想要有验证机制的话请去实现这个方法。Validate()方法是ActionSupport类实现了Validateable这个接口所出现的。
*.在Validate()方法内判断出错添加:this.addFieldError("username(出错标签)", "username invalid(出错信息)");这样出错信息就被保存在fielderror的这个域里面,只要在JSP页面里加上struts标签<s:fielderror></s:fielderror>就可以显示出错信息的。
*.日期的比较Calendar里面有个before(Object when); after(Object when)方法可以比较日期。时间对比代码如下:
Calendar c1 = Calendar.getInstance();
c1.setTime(birthday);
Calendar c2 = Calendar.getInstance();
c2.setTime(graduation);
if(!c1.before(c2)){
this.addFiedError("birthday", "birthday should be before graduation");
}
*.遇到类型转换错误的时候(也就是说不能进行类型转换),struts2框架自动生成一条错误信息,并且将该错误信息放到addFieldError里面
类型转换与输入校验的流程:
1. 首先Struts2对客户端传来的数据进行类型转换。
2. 类型转换完毕后再进行输入校验。
3. 如果类型转换和输入校验都没有错误发生,那么进入execute方法(调用商业逻辑)
注意:如果类型转换不成功,也同样要进行输入校验。
*.如果在类型转换失败时,Struts会自动给你所要取的值赋默认值。再进行输入校验。
*.如何替换在类型转换时出现的默认提示:
(全局的)在Struts.xml里<constant name="struts.custom.i18n.resources" value="message"></constant>;是表示常量静态的值。是表示将struts里的struts.custom.i18n.resources国际化文件重新指向自定义的message文件。message.properties文件放在SRC目录下。
message.properties:
xwork.default.invalid.fieldvalue={0} error
代码说明:在全局类型转换不成功时将会提示出name名称+error字符串。{0}表示出错表单里属性名称。invalid:无适当的。这样做也就修改了struts默认的提示。
(局部的)properties资源文件和PojoAction.java类要在同一个目录包下。名称要和PojoAction.java类一模一样。如:PojoAction.properties
PojoAction.properties:
invalid.fieldvalue.XXX(表单里属性名称)=XXX error.
推荐用局部的。
*.validate()里addActionError(String anErrorMessage)用法:
在ActionSupport类里的addFieldError()方法是这个类实现了ValidationAware接口。还有addActionError(String anErrorMessage)方法:是Action级别的错误信息。addFieldError()方法其实是一个Map(键值对)把errors都放到一个Map里,然后把多个map放到一个ArrayList里面形成集合。
struts验证是判断hasErrors()的真假。如果(hasAction() || hasFieldErrors())里有一个为假,那么hasErrors()为候,验证就失败了。
JSP里Action级别的错误。struts标签为:<s:actionerror/>
*.不要struts标签里帮我设置好的东西:如:
<s:textfield name="username" label="username" theme="semple">;theme="semple"意思:主题设置为简单,这样就没有struts所带来的特殊功能了。
*.在Struts2里面没有DispathAction这个东西,只有Action,但有和DispathAction相同功能的东西,在struts.xml里<action name="register" class="com.text.action.RegisterAction" method="abc">;method="abc"这个就说明Action里不去找execute方法了。去找abc这个方法。(应用了反射机制)
注:与abc相对应验证的方法是validateAcb(){},就会跳到这个验证时面了。
注:无论前面有多少个自定义validate,validate()是一定会被执行的。解决方法:1.我们可以不去写validate()方法。2.打validate()方法改成validateExecute()方法。
分享到:
相关推荐
### Struts2输入校验深度解析 #### 一、手动输入完成校验 在Struts2框架中,输入校验是确保数据完整性和安全性的重要环节。对于手动输入完成校验,Struts2提供了灵活的机制。 1. **普通处理方式**:在Action类中...
Struts 2 输入校验
本篇文章将深入探讨Struts2中的输入校验机制。 一、Struts2 输入校验概述 Struts2提供了多种进行输入校验的方式,包括Action级别校验、Validator框架校验、拦截器校验以及使用JSR303/JSR349 Bean Validation标准。...
本文将深入探讨Struts2中的输入校验机制,以及如何对指定方法进行输入校验。 在Struts2中,输入校验通常分为两种方式:客户端校验和服务器端校验。客户端校验主要通过JavaScript在用户端进行,可以提供即时反馈,但...
本文将深入探讨Struts2中的输入校验机制,帮助开发者更好地理解和应用。 一、Struts2输入校验概述 在Struts2中,输入校验主要用于验证用户通过表单提交的数据,防止无效或恶意数据进入系统。Struts2提供了多种方式...
在Struts2中,输入校验是确保数据安全、准确和有效的重要环节。本篇文章将深入探讨Struts2的输入校验机制及其相关知识点。 **输入校验的重要性** 输入校验是Web应用开发中的关键步骤,它可以防止恶意用户提交无效或...
在Struts2中,输入校验是确保数据安全性和应用稳定性的重要环节。它帮助开发者防止非法或无效的数据进入系统,从而减少潜在的错误和安全漏洞。 **Struts2输入校验机制** 1. **内置验证框架**: Struts2提供了内置的...
Struts2是一个流行的Java web开发框架,它提供了一套强大的输入校验机制,确保用户提交的数据符合业务逻辑的要求。在本文中,我们将深入探讨Struts2的输入校验功能,包括手动输入校验和基于验证框架的输入校验。 ##...
在Struts2中,输入校验是确保数据完整性和安全性的重要环节。输入校验可以防止恶意用户提交无效或有害的数据,并确保应用程序的稳定运行。以下是关于Struts2输入校验的详细知识: 1. **客户端校验**: 客户端校验...
struts2的输入校验有两种方式: 一.重写validate()方式 二.采用配置文件的方式 先我们就以一个简单的登录的例子来讲解这个吧. 重点讲解下,第二个采用配置文件的方式: 1.添加一个xml的校验文件,保存在...
Struts2作为一款流行的Java Web框架,其在处理用户输入数据和实现多语言支持方面具有强大的功能。在“Struts2数据校验与国际化”这一主题中,我们将深入探讨Struts2如何通过不同的验证机制确保数据的有效性,以及...
在Struts2中,校验器(Validator)是处理用户输入验证的核心组件,确保提交到服务器的数据符合预设的业务规则。这篇博客文章可能是关于如何使用Struts2的内置校验机制以及自定义校验规则的探讨。 Struts2的校验框架...
在Struts2框架中,输入校验是一个关键环节,它确保了用户提交的数据符合应用的要求,从而避免了无效数据导致的错误或安全问题。本讲将深入探讨Struts2的输入校验机制。 1. **Struts2输入校验概述** - 输入校验是...
在Struts2中,输入校验是一个至关重要的部分,它确保了用户从客户端提交的数据符合预设的业务规则,从而避免了无效或不合法数据进入系统。本篇文章将详细介绍如何在Struts2中进行输入校验,包括两种主要实现方式:...