struts2教程:12、自定义类型转换器
自定义类型转换器
有两种: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、自定义类型转换器相关推荐
- Struts2下创建自定义类型转换器(表单中日期的处理)
在表单提交中需要有日期的输入,默认的Struts2处理机制可能不能满足需求,需要自定义一下类型转换器.如: String----->java.util.Date:输入 java.util.Dat ...
- Struts2自定义类型转换器、自定义拦截器和用户输入数据的验证
一.自定义类型转换器 1.编写一个类,继承com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter 2.覆盖掉其中的public Obj ...
- Struts2自定义类型转换器
重要重要:以后一定要导对包,到错了一个包纠结了一天重点内容 一.Struts2中有自带类型转换器也有自定义类型转换器 1)比如表单提交的信息有 用户名,生日, 年龄, Action中对应的数据类型分别 ...
- 【Spring5.x】对象的生命周期、配置文件参数化、自定义类型转换器、后置处理Bean
工厂高级特性 对象的生命周期 创建阶段 初始化阶段 - InitializingBean.init-method 销毁阶段 - DisposableBean.destroy-method 对象的生命周 ...
- SpringMVC-应用(数据绑定-自定义类型转换器,数据的格式化,数据校验)
一.提出问题 SpringMVC封装自定义类型对象的时候,JavaBean要和页面提交的数据一一绑定.下面要知道: 1)页面提交的数据都是字符串 2)JavaBean中的属性如:Integer age ...
- springmvc二十一:自定义类型转换器
ConversionService:是一个接口; 它里面有一个Converter(转换器)进行工作 ①实现一个Converter接口,写一个自定义的类型转换器 ②Converter是Conversio ...
- 自定义类型转换器代码编写
package com.learn.utils;import org.springframework.core.convert.converter.Converter;import java.text ...
- SpringMVC框架----SpringMVC的自定义类型转换器
上一段我们介绍了请求参数的绑定 SpringMVC请求参数的绑定 在请求参数绑定的时候,有时候会遇到一些问题,如自定义类型转换器异常 1.自定义类型转换器演示异常 现在有一个页面,想给服务器提交数据, ...
- springboot中mongodb自定义类型转换器
文章目录 1 场景 1.1 BigDecimal写入mongo 1.2 人工转换 1.3 自定义转换器 2 版本 3 步骤 3.1 定义转换器 3.2 配置mongoDb工厂类 3.3 加载自定义转换 ...
最新文章
- 众所周知,static修饰的成员只实例化一次,而string类型每次赋值都会重新创建一个实例,那么用static修饰string呢?...
- 扎克伯格All in元宇宙,公司更名Meta,「脸」不要了
- HTTP 无状态中的 状态 到底指的是什么?
- Apollo核心概念
- 用 C# 来守护 Python 进程
- @JsonFormat Date类型时间 格式化 注解 使用
- SpringBoot核心注解@SpringBootApplication一二
- python中的超类_Python中的抽象超类
- 格式工厂DIVX、AVC、HEVC三个格式那个最清晰
- 如何在Linux上安装Oracle客户端连接工具sqlplus
- 洛谷-明明的随机数(C语言实现)
- Vue抽离公共方法并全局注册使用
- 手把手带你搭建一个简单的webpack脚手架(一)
- 使用python获取日历信息并制作订阅文件
- 董事长 CEO 总裁 总经理 区别
- 天平游码读数例题_使用天平游码时的读数方法-word
- 数字化转型实例:国家电网
- 实现加减乘除混合运算和归零功能的计算器
- php 圆周率多少位,圆周率1500多位
- flume-kafka环境搭建-mac单机模式