自定义类型转换器

有两种:1、局部。2、全局

java.util.Date类型的属性可以接收格式为2009-07-20的请求参数值。但如果我们需要接收格式为20091221的请求参数,我们必须定义类型转换器,否则struts2无法自动完成类型转换。

import java.util.Date;

public class HelloWorldAction {

private Date createtime;

public Date getCreatetime() {

return createtime;

}

public void setCreatetime(Date createtime) {

this.createtime = createtime;

}

}

需要定义一个专门的类:

public class DateConverter extends DefaultTypeConverter {

@Override  public Object convertValue(Map context, Object value, Class toType) {

SimpleDateFormatdateFormat = new SimpleDateFormat("yyyyMMdd");

try {

if(toType == Date.class){//当字符串向Date类型转换时

String[] params = (String[]) value;// Request.getParameterValues()

return dateFormat.parse(params[0]);

}else if(toType == String.class){//当Date转换成字符串时

Date date = (Date) value;

return dateFormat.format(date);

}

} catch (ParseException e) {}

return null;

}

}

将上面的类型转换器注册为局部类型转换器:(struts2提供了很多类型转换器的方法,这只是其中的一种)

在Action类所在的包下放置ActionClassName-conversion.properties文件,ActionClassName是Action的类名,后面的-conversion.properties是固定写法,对于本例而言,文件的名称应为HelloWorldAction-conversion.properties。在properties文件中的内容为:

属性名称=类型转换器的全类名

对于本例而言,HelloWorldAction-conversion.properties文件中的内容为:

createtime= cn.itcast.conversion.DateConverter

自定义全局类型转换器

将上面的类型转换器注册为全局类型转换器:

在WEB-INF/classes下放置xwork-conversion.properties文件(即放在src目录下)。在properties文件中的内容为:

待转换的类型=类型转换器的全类名

对于本例而言,xwork-conversion.properties文件中的内容为:

java.util.Date= cn.itcast.conversion.DateConverter

全局类型转换器处理的是一种格式。如果处理的数据时多种格式要用局部变量转换器。

struts2教程:12、自定义类型转换器相关推荐

  1. Struts2下创建自定义类型转换器(表单中日期的处理)

    在表单提交中需要有日期的输入,默认的Struts2处理机制可能不能满足需求,需要自定义一下类型转换器.如: String----->java.util.Date:输入 java.util.Dat ...

  2. Struts2自定义类型转换器、自定义拦截器和用户输入数据的验证

    一.自定义类型转换器 1.编写一个类,继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter 2.覆盖掉其中的public Obj ...

  3. Struts2自定义类型转换器

    重要重要:以后一定要导对包,到错了一个包纠结了一天重点内容 一.Struts2中有自带类型转换器也有自定义类型转换器 1)比如表单提交的信息有 用户名,生日, 年龄, Action中对应的数据类型分别 ...

  4. 【Spring5.x】对象的生命周期、配置文件参数化、自定义类型转换器、后置处理Bean

    工厂高级特性 对象的生命周期 创建阶段 初始化阶段 - InitializingBean.init-method 销毁阶段 - DisposableBean.destroy-method 对象的生命周 ...

  5. SpringMVC-应用(数据绑定-自定义类型转换器,数据的格式化,数据校验)

    一.提出问题 SpringMVC封装自定义类型对象的时候,JavaBean要和页面提交的数据一一绑定.下面要知道: 1)页面提交的数据都是字符串 2)JavaBean中的属性如:Integer age ...

  6. springmvc二十一:自定义类型转换器

    ConversionService:是一个接口; 它里面有一个Converter(转换器)进行工作 ①实现一个Converter接口,写一个自定义的类型转换器 ②Converter是Conversio ...

  7. 自定义类型转换器代码编写

    package com.learn.utils;import org.springframework.core.convert.converter.Converter;import java.text ...

  8. SpringMVC框架----SpringMVC的自定义类型转换器

    上一段我们介绍了请求参数的绑定 SpringMVC请求参数的绑定 在请求参数绑定的时候,有时候会遇到一些问题,如自定义类型转换器异常 1.自定义类型转换器演示异常 现在有一个页面,想给服务器提交数据, ...

  9. springboot中mongodb自定义类型转换器

    文章目录 1 场景 1.1 BigDecimal写入mongo 1.2 人工转换 1.3 自定义转换器 2 版本 3 步骤 3.1 定义转换器 3.2 配置mongoDb工厂类 3.3 加载自定义转换 ...

最新文章

  1. 众所周知,static修饰的成员只实例化一次,而string类型每次赋值都会重新创建一个实例,那么用static修饰string呢?...
  2. 扎克伯格All in元宇宙,公司更名Meta,「脸」不要了
  3. HTTP 无状态中的 状态 到底指的是什么?
  4. Apollo核心概念
  5. 用 C# 来守护 Python 进程
  6. @JsonFormat Date类型时间 格式化 注解 使用
  7. SpringBoot核心注解@SpringBootApplication一二
  8. python中的超类_Python中的抽象超类
  9. 格式工厂DIVX、AVC、HEVC三个格式那个最清晰
  10. 如何在Linux上安装Oracle客户端连接工具sqlplus
  11. 洛谷-明明的随机数(C语言实现)
  12. Vue抽离公共方法并全局注册使用
  13. 手把手带你搭建一个简单的webpack脚手架(一)
  14. 使用python获取日历信息并制作订阅文件
  15. 董事长 CEO 总裁 总经理 区别
  16. 天平游码读数例题_使用天平游码时的读数方法-word
  17. 数字化转型实例:国家电网
  18. 实现加减乘除混合运算和归零功能的计算器
  19. php 圆周率多少位,圆周率1500多位
  20. flume-kafka环境搭建-mac单机模式

热门文章

  1. xUtils网络请求时的参数问题
  2. Android万能的指示器
  3. opengl之高级GLSL(2)-接口块,Uniform缓冲对象,Uniform块布局等
  4. 神经网络结构设计,神经网络架构设计
  5. vba excel学习笔记-从单元格获取数据,修改数据
  6. 详解互联网APP架构1.0
  7. python的网页解析器_Beautiful Soup常见的解析器
  8. 自学Arduino UNO串口(制造光控灯)
  9. 开源大数据开发平台DataSphereStudioLinkis踩坑记录
  10. myeclipse 注册码(8.5版本)