`
Leon.Wood
  • 浏览: 288236 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Struts2笔记 - 10 自定义类型转换器

阅读更多
package struts2.demo.action;

import java.util.Date;

public class DateAction {
 private Date birthday;
 
 public String execute(){
  return "success";
  
 }
 public void setBirthday(Date birthday) {
  System.out.println(birthday);
  this.birthday = birthday;
 }

 public Date getBirthday() {
  return birthday;
 }
}

 
http://localhost:8080/Struts2/demo/date?birthday=2009-12-12

控制台和jsp页面均打印Sat Dec 12 00:00:00 CST 2009

■如果http://localhost:8080/Struts2/demo/date?birthday=20091212
则控制台会报错而jsp页面会原样打印
如果要接受此种格式日期.需要定义类型转换器

局部类型转换器,全局类型转换器
定义类型转换器需要继承DefaultTypeConverter类 通过重写其方法实现

package struts2.demo.action;


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;

public class DateTypeConverter extends DefaultTypeConverter {

 @Override
 public Object convertValue(Map<String, Object> context, Object value,//接收到的值-需要进行转换的值
   Class toType) {//要转换成的目标类型
  SimpleDateFormat sim = new SimpleDateFormat("yyyyMMdd");
  if(toType==Date.class){
   String[] param=(String[])value;
   try {
    return sim.parse(param[0]);
   } catch (ParseException e) {    
    e.printStackTrace();
   }
  }else if(toType==String.class){
   Date date = (Date)value;
   return sim.format(date);
  }
  return super.convertValue(context, value, toType);
 }

}

 

将上面的类型转换器注册为局部类型转换器
在action类所在的包下放置ActionClassName-conversion.properties文件,actionClassName是Action的类名,后面的-conversion.properties是固定写法
properties文件中的内容为
属性名称=类型转换器的全类名

DateAction-conversion.properties

birthday=struts2.demo.action.DateTypeAction

 

分享到:
评论

相关推荐

    struts2 学习重点笔记

    - **优势**:使用 Struts2 可以显著提高开发效率,因为它能够处理很多基础任务,如数据接收、类型转换、验证等。 **1.2 Struts2 架构** - **MVC 架构**:Struts2 采用经典的 MVC 架构,分为模型(Model)、视图(View)...

    struts2学习笔记三(第3讲.Struts2的类型转换)

    在本篇“Struts2学习笔记三”中,我们将聚焦于Struts2的类型转换这一核心特性。类型转换在处理用户提交的数据时非常关键,它允许Struts2自动将请求参数转换为Java对象的属性。 在Struts2中,类型转换主要由`...

    struts2学习笔记.doc

    - 在`struts.xml`中注册自定义转换器。 - 在Action类中使用该转换器。 #### 三、输入校验 **3.1 输入校验框架** - **框架原理**:Struts2提供了强大的输入校验功能,可以自动检查用户提交的数据是否符合预期。 - ...

    struts2笔记

    如果内置转换器无法满足需求,开发者可以自定义转换器。 **四、输入验证** Struts2提供了两种验证机制:客户端验证和服务器端验证。客户端验证通过JavaScript在用户提交前检查数据,而服务器端验证是强制性的,...

    struts2学习笔记(完美总结)——转自OPEN经验库

    在实际项目中,Struts2可以处理类型转换、文件上传下载、拦截器(Interceptor)防止重复提交等问题。Interceptor是Struts2中的重要特性,它允许在Action执行前后插入额外的处理逻辑,如登录验证、日志记录等。深入...

    struts2学习笔记四(第4讲.Struts2的类型转换续)

    Struts2通过内置的类型转换器和自定义转换器来解决这个问题。默认情况下,Struts2提供了一系列内建的转换器,如IntegerTypeConverter、FloatTypeConverter和DateTypeConverter等,它们能够自动将请求参数转换为相应...

    struts2学习笔记

    5. **类型转换与输入校验**:Struts2在类型转换过程中也会进行基本的校验,如检查非空、数值范围等。 **四.Struts2的核心:拦截器** 拦截器是Struts2的核心组件,它们在Action执行前后介入处理流程。拦截器可以...

    SSH笔记-类型转换器和错误信息显示、复杂属性、批量更新模型数据

    自定义类型转换器可以解决系统默认转换器无法满足的特定需求,比如处理特殊的日期格式或者货币类型。 接着,我们来看"错误信息显示"。在处理用户输入时,可能会遇到验证错误,例如无效的数据或必填字段缺失。Struts...

    Struts学习笔记

    为了支持更多的自定义类型转换,Struts2提供了一个`TypeConverter`接口,允许开发者实现自己的类型转换器。此外,Struts2还内置了一些常用的类型转换器,例如日期类型的转换。 - **自定义类型转换器**:可以通过...

    struts2的学习笔记+测试源代码

    这篇学习笔记和测试源代码将深入探讨Struts2中的类型转换机制。 首先,了解为什么类型转换是必要的。在Web应用中,用户通过HTML表单提交的数据通常是字符串类型。然而,后台业务逻辑可能需要这些数据以其他类型存在...

    [黑马程序员Struts2 2016版视频] 前3Days笔记

    总结,黑马程序员Struts2 2016版的前3Days笔记重点介绍了Struts2的基础概念、架构、配置、Action、结果类型、视图渲染、标签库以及拦截器等关键知识点。通过深入学习这些内容,开发者能够更好地理解和运用Struts2...

    Struts2笔记.doc

    3. **类型转换器**:Struts2内置了类型转换器,可以自动将请求参数转换为所需的类型,减少了手动转换的工作。 4. **多视图支持**:Struts2支持多种视图技术,如JSP、FreeMarker和Velocity,使得视图层的实现更加...

    Struts2.1学习笔记

    - **类型转换器**:Struts2内置了一套类型转换机制,可以直接将HTTP请求中的参数转换为目标Action类中的属性值,无需手动注册类型转换器。 - **多样化的表现层支持**:除了传统的JSP外,Struts2还支持FreeMarker等...

    Struts2入门笔记1-4

    标题"Struts2入门笔记1-4"暗示了这是一个关于Struts2基础知识的学习过程,涵盖了从基础到进阶的内容,可能包括了Struts2的核心概念、配置、拦截器以及实际应用等。 描述中提到,Struts2的控制实现是通过Filter来...

    Struts2学习笔记

    - **类型转换**:Struts2支持自动类型转换,可以通过配置文件自定义转换器。 - **拦截器**:用于预处理请求和后处理响应,可以自定义拦截器来扩展框架功能。 - **文件上传与下载**:Struts2内置支持文件上传与...

    struts笔记

    Struts2支持自定义类型转换器,可以实现更复杂的类型转换逻辑。 1. **全局配置**:可以在`xwork-conversion.properties`文件中进行全局类型的转换配置。 ```properties int.class=org.apache.struts2.util....

    struts2学习笔记!

    - 在某些情况下,可能需要自定义类型转换器来处理特定类型的转换。 - **示例**:假设我们需要创建一个`HelloAction`类,并且需要一个转换器`HelloConverter`。 - 创建`HelloAction`类,并在`HelloAction.conversion...

Global site tag (gtag.js) - Google Analytics