此处 我们通过简单的例子实现对action下的某个属性字段进行类型转换
1)输入界面
<form action="userAction.action" method="post">
<input type="text" name="birthday" value=""><br>
<input type="submit" value="提交">
</form>
2)测试action ----UserAction 仅仅有个类型为Date的birthday属性
public class UserAction extends ActionSupport{
private Date birthday;
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}
@Override
public String execute() throws Exception {
return SUCCESS;
}
}
3)struts.xml配置文件 配置action
<action name="userAction" class="com.etc.sky.action.UserAction">
<result>/show.jsp</result>
</action>
4)自定义类型转换器类 实现 将表单输入的字符串转化为Date类型/获取birthday值的时候 将其转换为string便于页面显示
public class DateConverstor extends StrutsTypeConverter {
/**
* arg1为表单传入的参数 arg2为arg1需要转换的目标对象类型此处也即为java.util.date
* 该方法执行在action为属性注入值之前 即set方法之前
* */
@Override
public Object convertFromString(Map arg0, String[] arg1, Class arg2) {
System.out.println(arg1[0]);
if(arg2==Date.class){
String birth=arg1[0];
SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
try {
Date date=sdf.parse(birth);
System.out.println("convertFromString"+date);
return date;
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}
/**
* arg1为需要进行转换的对象 此处即为date
* 该方法执行在获取action属性值后 即get方法之后
* */
@Override
public String convertToString(Map arg0, Object arg1) {
if(arg1 instanceof Date){
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日");
Date date=(Date) arg1;
String strDate=sdf.format(date);
System.out.println("convertToString"+strDate);
return strDate;
}
return null;
}
}
5)局部类型转换资源文件配置
命名规则为:要进行类型转换的action名-conversion.properties
内容为:action下要进行类型转换的属性=类型转换器类的全称(包名+类名)
birthday=com.etc.sky.converstor.DateConverstor
6)显示页面 注意 为了能够正常显示 转换后的信息 必须采用struts标签来读取信息
<s:property value="birthday"/>
测试 OK.......
分享到:
相关推荐
拦截器是Struts2的核心组件之一,它允许在动作执行前后插入自定义逻辑,比如日志记录、事务管理、性能监控等。Struts2提供了一系列内置的拦截器,如`Params`用于参数解析,`Prepare`用于动作准备,`Validation`用于...
总之,Struts2的类型转换机制是其强大功能之一,它简化了数据绑定过程,使得开发者能够专注于业务逻辑,而不是数据转换的细节。理解并熟练掌握Struts2的类型转换,将有助于提高开发效率和代码质量。在实际项目中,应...
在Struts2中,类型转换是核心功能之一,允许框架自动将HTTP请求参数转换为Action类中的相应属性。这极大地方便了开发过程,减少了手动进行数据验证和类型转换的工作。 类型转换器(Converter)在Struts2中扮演着...
作为标签之一,“工具”可能指的是Struts2提供的各种UI组件,如`s:textfield`、`s:checkbox`等,它们在后台自动利用类型转换机制,确保数据绑定的正确性。 总的来说,理解并掌握Struts2的类型转换机制对于开发高...
总之,Struts2的类型转换机制是其强大功能之一,它极大地简化了数据绑定和验证的过程,同时允许开发者根据项目的具体需求进行定制化处理。理解和掌握Struts2的类型转换,对于编写健壮且易于维护的Web应用至关重要。...
在Struts2中,全局转换器(Global Converters)是一个关键特性,它允许开发者为整个应用定义统一的数据类型转换规则,而不是在每个Action类中单独配置。这个特性大大提高了代码的复用性和维护性。 标题“Struts2...
本案例"Struts2之类型转换器的使用案例struts002"深入探讨了如何自定义类型转换器以及在实际应用中的使用。 首先,Struts2框架提供了一系列内置的类型转换器,可以自动处理基本类型和常见类型的数据转换,如String...
类型转换器是Struts2框架的核心组件之一,其主要任务是将用户的输入(通常是字符串)转换为Action类中声明的字段类型。这在处理复杂的数据类型,如日期、枚举或自定义对象时尤其有用,因为默认的转换器可能无法满足...
自定义类型转换器是Struts 2的核心特性之一,允许开发者根据业务需求定制数据转换规则。以下将详细介绍如何创建、注册以及使用自定义类型转换器。 1. **创建自定义类型转换器** - 创建一个类,实现`org.apache....
总结来说,Struts2的类型转换机制是其核心功能之一,它有效地解决了HTTP请求数据与Action属性之间的类型不匹配问题。理解并掌握Struts2的类型转换,对于提升Java web应用的开发效率和质量具有重要意义。通过学习和...
1. **ValueStack**:Struts2的核心组件之一,负责管理Action对象和它们的属性。当一个Action被请求时,它的实例会被压入ValueStack,然后可以通过OGNL(Object-Graph Navigation Language)表达式来访问。 2. **...
在描述中提到的"interceptor"文件,很可能包含了关于拦截器(Interceptor)的配置或示例代码,因为拦截器是Struts2中实现类型转换的关键组件之一。 Struts2的拦截器是一种AOP(面向切面编程)的概念,它们可以拦截...
- **Action类详解**:Action类是Struts2的核心组件之一,负责处理用户的请求并返回相应的结果。了解如何编写Action类、设置其属性以及处理请求参数至关重要。 - **Result配置**:Result用于指定Action执行后的结果...
在Struts2之前,WebWork是另一个流行的轻量级框架,Struts2在设计上借鉴了很多WebWork的理念和特性,因此可以说WebWork是Struts2的基础之一。 ### Struts2与WebWork的关系 Struts2和WebWork都属于MVC(Model-View-...
Struts2作为一款流行的Java Web框架,其在处理表单提交和实体对象绑定方面提供了强大的功能。本篇文章将深入探讨如何在Struts2中实现从复杂实体对象到页面参数的有效转换,以提升开发效率和代码的可维护性。在实际...
XWork是Struts2的基础,它提供了一套动作(Action)处理机制,包括拦截器(Interceptor)、配置管理、类型转换和异常处理等关键功能。这些功能在Struts2中扮演着至关重要的角色: 1. **拦截器**:XWork引入了拦截器...
相比之下,Struts2的Action为每个请求创建一个新的实例,消除了线程安全问题,简化了资源管理。 在Servlet依赖性上,Struts1的Action直接依赖于Servlet API,执行方法接收HttpServletRequest和HttpServletResponse...
Struts框架是Java Web开发中常用的MVC框架之一,它为开发者提供了强大的控制层支持。在Struts中,数据转换是非常重要的一部分,因为Web表单中的数据类型可能与后端模型类的属性类型不匹配。这时,Struts的转换器...