在表单的提交过程中经常碰到应该是数字的类型,但是表单提交的是字母,所以在struts2的自动类型转换中将导致类型转换异常,struts2中也有自定义的处理机制,例如是int的属性age,但是你提交的值是abc,在转换中出现异常,struts2自动调用addFieldError方法,把错误增加进去,但是struts2自动增加的错误提示信息是英文的:Invalid field value for field "age".
但是我们需要自定义这个错误提示信息的话就需要另外的方法了。(首先进行类型转换,再调用set进行属性的设置,然后再执行validate(),最后执行execute(),当类型转换出现异常的时候异常的属性会获得一个初始值int的为0,string的为null,同时validate()方法还是会执行的)
1. 局部属性文件实现
假如对RegisterAction类中的类型转换异常做处理,则在类文件的同一个目录下建立RegisterAction.properties文件,在文件中输入invalid.fieldvalue.age=age convert error误。(invalid.fieldvalue.*前面的两个单词都是固定的*对应action类的属性名。如果希望提示信息为中文,可以通过native2ascii工具把中文转换一下,然后把转换后的信息放这就可以了)。
2. 全局属性文件实现
建立一个全局的属性文件,同时在struts.xml文件中配置一下属性文件的信息。
注:
1. 首先Struts2对客户端传来的数据进行类型转换
2. 类型转换完毕后再进行输入校验,默认情况执行validate方法
3. 如果类型转换和输入校验都没有错误发生,那么进入execute方法(调用商业逻辑)
遇到类型转换错误的时候(也就是说不能进行类型转换),struts2框架自动生成一条错误信息,并且将该错误信息放到addFieldError里面
注意:如果类型转换不成功,也同样要进行输入校验
分享到:
相关推荐
Struts2是一个强大的Java web框架,它为开发者提供了丰富的功能,包括类型转换、拦截器和校验机制。本文将深入探讨这些关键知识点,并通过实际例子来帮助你理解它们的工作原理和应用。 首先,我们来看看**类型转换...
#### 二、输入校验流程详解 输入校验的流程在Struts2中是结构化的,涉及多个步骤: 1. **类型转换**:首先,Struts2框架使用类型转换器将HTTP请求中的字符串参数转换为相应的Java类型,如Integer、Date等,并将...
在Struts2中,输入校验的流程如下: 1. 类型转换器:Struts2将接收到的字符串参数转换为相应的数据类型,并将这些值赋给Action的属性。如果在此过程中发生异常,异常信息会被保存并由`conversionError`拦截器处理。...
### 二、输入校验流程 1. **类型转换器**: - Struts2的类型转换器会尝试将HTTP请求参数转化为Action类中属性的对应类型。 2. **异常处理**: - 在转换过程中如果出现异常,Struts2会将异常信息存储在`...
在Struts2中,输入校验发生在类型转换成功后,且在`execute`方法执行之前。服务器端校验通常更为重要,因为它能防止恶意用户绕过客户端校验。 **编程式输入校验**涉及到覆盖`ActionSupport`类的`validate`方法,此...
Struts2引入了更强大的OGNL,提供了更灵活的对象图遍历和类型转换。 页面绑定方面,Struts1依赖JSP标准机制,而Struts2采用ValueStack技术,允许taglib直接访问值栈中的对象,无需在视图和对象之间建立直接绑定,...
5. **类型转换与输入校验**:Struts2在类型转换过程中也会进行基本的校验,如检查非空、数值范围等。 **四.Struts2的核心:拦截器** 拦截器是Struts2的核心组件,它们在Action执行前后介入处理流程。拦截器可以...
4. **校验流程**:在Struts2中,校验流程通常发生在执行Action之前。如果校验失败,则不会执行Action中的业务逻辑,而是直接返回一个错误页面或视图。 5. **错误消息展示**:Struts2支持区分Field Error(字段级别...
- **类型转换和数据校验**:Struts2提供了更加灵活的数据类型转换和校验机制,支持自定义校验规则。 - **国际化支持**:Struts2对国际化支持更加强大,能够更容易地实现多语言界面。 通过上述介绍,我们可以看出...
- **Struts2** 直接利用Action对象的属性作为输入属性,这极大地简化了输入处理流程。开发者可以直接使用现有的业务对象作为输入和输出对象,而无需额外创建`ActionForm`类。此外,Struts2支持更高级的表单验证功能...
- **Struts2**: 使用OGNL进行类型转换,为基本和常用对象提供了转换器。Struts2的类型转换机制更为灵活且易于配置。 #### 9. 数据校验机制 - **Struts1**: 支持在`ActionForm`的`validate`方法中手动校验数据,...
- **Struts2**虽然不再强制要求使用ActionForm模式,但仍然支持类似的功能,例如通过ModelDriven模式或使用Struts2的类型转换机制来处理用户输入。 #### 视图技术的支持 - **Struts1**支持使用JSTL标签库和EL表达式...
此外,Struts2支持多种视图技术,如JSP、FreeMarker和Velocity,以及数据绑定和类型转换,极大地提高了开发效率。 **2. MVC模式** 在MVC模式中,Model(模型)处理业务逻辑,View(视图)负责显示数据,Controller...
**6.8 Struts2的输入校验流程** - **流程介绍**:描述Struts2如何执行输入校验的整体流程。 #### 七、Struts2拦截器 **7.1 理解拦截器** - **7.1.1 理解DRY** - **概念介绍**:DRY(Don't Repeat Yourself)原则...
四、Struts2输入校验 Struts2支持两种校验方式:Action级别的校验(通过注解或XML配置)和字段级别的校验(使用Validator插件)。校验失败会返回错误信息,供用户界面展示。 五、文件上传与下载 Struts2提供了方便...
对于安全性,Struts2 提供了内置的拦截器来实现输入校验和防止常见的Web攻击,例如XSS(跨站脚本攻击)和CSRF(跨站请求伪造)。拦截器可以在请求到达Action之前进行校验,如果校验未通过,则可以终止请求的进一步...
- **框架原理**:Struts2提供了强大的输入校验功能,可以自动检查用户提交的数据是否符合预期。 - **配置方式**: - 使用注解方式(适用于Struts2较新版本)。 - 在`struts.xml`或Action类中通过配置文件的方式...
4. **Struts2输入校验**: - **Validation框架**:使用注解或XML配置文件进行字段验证,如`@Validated`、`@Size`等。 - **动态验证**:基于OGNL表达式实现更复杂的验证逻辑。 5. **Struts2实现文件上传及下载**:...
- **类型转换和数据验证**:Struts2内置了丰富的类型转换和数据验证机制,能够自动处理数据类型的转换和校验工作,大大减轻了开发者的负担。 - **国际化支持**:Struts2提供了强大的国际化支持,可以轻松实现多语言...
Struts2提供了一种自动类型转换机制,允许用户输入的数据自动转换为Action类中相应属性的类型。开发者可以通过注解或配置文件自定义类型转换规则,以处理复杂或特殊类型的字段。 四、Struts2数据校验和验证框架: ...