struts2的类型转换:
基本类型转换
boolean 和 Boolean、char和 Character、int 和 Integer、long 和 Long、float 和 Float、double 和 Double
如果定义age是int类型,输入的值比如是aa,不是int类型,出现类型转换的错误,
返回视图名称 "input",可以在result标签中配置name名称为input,来进行页面的回显
自定义类型转换器
把struts2里面默认的Date的格式 yyyy-MM-dd修改为 yyyy/MM/dd
实现自定义类型转换器有三种
(1)一般都是继承 DefaultTypeConverter类实现
(2)注册类型转换器
局部注册:1、:如果使用属性封装数据
在action所在的包里面,创建文件 命名规范 :action类名-conversion.properties
在创建的文件里面 要转换的名称=自定义类型转换器的包类路径
2、:使用模型驱动封装数据
在action所在的包里面,创建文件 命名规范:javabean类名称-conversion.properties
在创建的文件里面 要转换的名称=自定义类型转换器的包类路径
全局注册
在src下面创建文件 命名规范:xwork-conversion.properties ,
格式 : 待转换的类型=类型转换器的全类名
java.util.Date=cn.itcast.utils.MyDateConverter
数据校验:
1、手动编写校验代码:
在action类继承ActionSupport类;重写validate()方法[此方法中有一个this.addFieldError(属性名,"错误信息")];在jsp中引入struts2标签,<s:fieldError/>可以获得错误信息的内容;
2、xml配置文件校验:【开发常用】
在要校验的action所在的包里面,创建xml文件 命名规范:action类名称-validation.xml
xml约束的引入:xwork-core包-->xwork-validator-1.0.3.dtd中的约束头。拷贝后从新去下空格。
校验规则:xwork-core包-->xwork2.validator.validators包-->default.xml 中有所有的校验规则,也就是下面的type类型
<validators>
<field name="要校验数据名称">
<field-validator type="校验的规则">
<message>错误提示的信息</message>
</field-validator>
</field>
</validators>
在jsp中获取校验的提示的信息,使用struts2标签 <s:fielderror/>
3、对action方法的校验:
创建的xml的文件的命名 命名规范 action类名称-配置文件中action的name的值-validation.xml;例如: AddCusotmerAction-addcustomer-validation.xml
自定义校验规则:(开发中很少用到)
1、必须实现 Validator接口,通常自定义校验器 继承 ValidatorSupport 和 FieldValidatorSupport
ValidatorSupport 针对不是一个输入字段 (两个密码一致)
FieldValidatorSupport 针对是一个输入字段 (用户名非空)
2、注册校验器:
在工程的src下新建validators.xml文件中引入 xwork-core-2.3.7.jar 中 xwork-validator-config-1.0.dtd 的约束
3、使用校验器:
在Action所在包 创建Action类名-validation.xml
编写一个类继承FieldValidatorSupport :
public class MyAgeValidator extends FieldValidatorSupport {
public void validate(Object obj) throws ValidationException {
// 获得字段名称:
String name = this.getFieldName();
// 获得字段的值:
Object value = this.getFieldValue(name, obj);
if(value instanceof Integer){
int age = (Integer) value;
if(age < 0){
this.addFieldError(name, obj);
}
}
}
}
* 注册校验规则:
* 在src下创建一个validators.xml
* 引入一个DTD:
* xwork-core-2.3.7.jar下的xwork-validator-config-1.0.dtd
* 配置:
<validators>
<validator name="aaa" class="cn.itcast.action.demo6.MyAgeValidator"></validator>
</validators>
* 使用校验规则:
<validators>
<field name="age">
<field-validator type="aaa">
<message>年龄不能为负数!</message>
</field-validator>
</field>
</validators>
相关推荐
在Struts2中,类型转换和数据校验是两个关键的特性,它们确保了用户输入的数据能够准确无误地被处理和验证,从而提高了应用的安全性和可靠性。 **类型转换(Type Conversion)** 在Struts2中,类型转换是自动进行...
在处理用户输入和业务逻辑交互时,Struts2提供了强大的类型转换和校验机制,以确保数据的有效性和安全性。以下是对给定内容的详细解释: **类型转换** 在Struts2中,当用户通过表单提交数据时,所有参数默认都以...
XWork的拦截器(Interceptor)机制在Struts2中扮演了关键角色,允许开发者定义一系列在Action执行前后运行的代码片段,用于日志记录、权限检查、数据校验等操作。 Struts2的MVC设计模式使得开发者可以清晰地分离...
2. **Interceptor拦截器**:Struts2的拦截器机制是其一大亮点,允许开发者在Action执行前后插入自定义的处理逻辑,例如日志记录、权限验证、数据校验等。这些拦截器可以通过配置文件或注解灵活组合使用。 3. **...
通过分析这些文件,你可以更深入地了解Struts2如何处理请求,执行类型转换,应用拦截器以及进行数据校验。 总结来说,Struts2的类型转换、拦截器和校验机制是构建健壮、可维护的Java web应用程序的重要工具。理解并...
2. **异常处理与错误封装**:如果类型转换过程中遇到问题,如无法正确转换数据类型,会抛出异常。这些异常会被捕获并封装到`fieldError`对象中,存储在`ActionContext`中,以便后续的拦截器处理。 3. **反射调用...
4. **强大的表单和验证**:Struts2提供了一套强大的表单处理机制,包括类型转换、数据校验和字段级错误处理。XML或者注解可以用来定义验证规则。 5. **模板技术**:Struts2支持多种视图模板技术,如FreeMarker、...
在Struts2中,它用于Action属性与JSP标签之间的数据绑定,以及在拦截器中进行动态方法调用。 5. **Javassist库(javassist-3.11.0.GA.jar)** Javassist是一个处理Java字节码的库,Struts2使用它来实现运行时的类...
类型转换在处理用户提交的数据时非常关键,它允许Struts2自动将请求参数转换为Java对象的属性。 在Struts2中,类型转换主要由`Converter`接口实现,它的主要职责是将HTTP请求参数转换为Action类的属性。当我们在...
- **xwork-core-2.5.16.jar**:XWork是Struts2的基础,提供了Action和Interceptor的基础支持,包括对象绑定、类型转换、验证等。 - **ognl-3.1.24.jar**:OGNL(Object-Graph Navigation Language)是Struts2中的...
通过对Struts2框架内建校验器的介绍,我们可以看到Struts2提供了一系列强大而灵活的数据校验工具。无论是简单的非空校验还是复杂的类型转换和模式匹配,这些校验器都能满足开发者的不同需求。合理利用这些校验器不仅...
在 Struts2 中,OGNL 表达式会被转换成 AST 语法树,语法树上每个分支执行前会对其进行 Accessible 安全检查。之前的 Struts2 远程代码执行 POC,一般是通过修改 StaticMethodAccess 或是创建 ProcessBuilder 对象来...
该插件是Struts2生态的一部分,帮助开发者在处理数字输入时进行格式化和校验,提高应用的用户体验和数据安全性。 首先,让我们了解一下Struts2的工作原理。Struts2的核心组件包括Action、Result、Interceptor(拦截...
与Struts1相比,Struts2具有显著的优势,包括更少的侵入性设计、支持AOP编程的拦截器、类型转换器、多样的表现层技术以及更灵活的数据校验机制。 首先,Struts2的无侵入式设计使得应用程序不再紧密依赖Servlet API...
4. **类型转换**:OGNL自动进行类型转换,使得字符串可以转换为整型或其他类型。 5. **集合操作**:OGNL提供了对集合的便利操作,如迭代、过滤等。 **值栈(Value Stack)** 值栈是Struts2中的一个核心概念,它是...
2. `xwork-core.jar`: XWork是Struts2的基础,提供了一套完整的Action处理机制,包括类型转换、数据校验和异常处理等功能。XWork库被Struts2框架所依赖,是其内部工作的基石。 3. `ognl.jar`: Object-Graph ...
3. **Interceptor(拦截器)**:Struts2的拦截器机制类似于AOP(面向切面编程),允许在Action执行前后插入自定义逻辑,如日志记录、权限验证、数据校验等。拦截器栈是预定义的一系列拦截器顺序,可以按需调整。 4....
3. **拦截器(Interceptor)**:这是Struts 2的一大创新,它们是在动作执行前后插入的代码片段,可以实现如日志、权限验证、数据校验等通用功能。 4. **插件架构**:Struts 2支持丰富的插件,如Struts2-convention-...
1. 类型转换器:Struts2将接收到的字符串参数转换为相应的数据类型,并将这些值赋给Action的属性。如果在此过程中发生异常,异常信息会被保存并由`conversionError`拦截器处理。 2. 客户端校验:Struts2支持在...
`xwork-core-2.0.10.jar`是XWork框架,它是Struts2的基础,提供了动作管理、类型转换、数据校验等功能。 5. **拦截器**:Struts2的强大之处在于其拦截器机制,如`struts2-interceptor-plugin.jar`,拦截器可以拦截...