struts局部、全局类型转换器
第01步:编写bean
package com.self.bean;
import java.util.Date;
public class User {
private Date birthday = null;
public Date getBirthday() {
System.out.println("获得-User:" + birthday);
return birthday;
}
public void setBirthday(Date birthday) {
System.out.println("设置-User:" + birthday);
this.birthday = birthday;
}
}
第02步:编写action类:
package com.self.action;
import com.self.bean.User;
public class Transform {
private User lilan;
public Transform() {
}
public String showdata() {
return "tsuccess";
}
public User getLilan() {
return lilan;
}
public void setLilan(User lilan) {
this.lilan = lilan;
}
}
第03步:编写转换器类
package com.self.conversion; import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map; import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter; /**
* 自定义转换器:DataTransform-conversion.properties
*/
/* 01--继承DefaultTypeConverter:默认转换器 */
public class DataTransform extends DefaultTypeConverter {
/* 02-- 重写convertValue方法 */
@Override
public Object convertValue(Map<String, Object> context, Object value, Class toType) {
System.out.println("执行转换");
/*03--调用SimpleDateFormat类方法进行格式转换*/
/*04--以action类名加“-conversion.properties”为名建立properties文件
* :Transform-conversion.properties
* 再加入键值对:转换类型=转换器地址
* :birthday=com.self.action.DataTransform
*/
SimpleDateFormat dataFormat=new SimpleDateFormat("yyyyMMdd");
try {
if(toType==Date.class){//目标类型为Date类型
String[] params=(String[]) value;//接收的参数为数组类型,Request.getParameterValues();
System.out.println("目标:Date:"+params[0]);
return dataFormat.parse(params[0]);
}else if(toType==String.class){//目标类型为String类型
Date date=(Date) value;
System.out.println("目标:String:"+date);
return dataFormat.format(date);
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
} }
第04步:编写property文件
property文件:放在action同级目录
property命名:Transform-conversion.properties(action类名-conversion.properties)
lilan.birthday=com.self.conversion.DataTransform
lilan:指的是action里面的对象
lilan.birthday:对象.属性=转换器
第05步:配置struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<constant name="struts.action.extension" value="do"/> <package name="transform" namespace="/" extends="struts-default">
<action name="list_*" class="com.self.action.Transform" method="{1}">
<result name="tsuccess">
/outdata.jsp
</result>
</action>
</package>
</struts>
第06步:编写数据输入界面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<body>
<form action="list_showdata.do">
日期:<input name="lilan.birthday" type="text" value="20150120" />
<BR>
输入格式01为:20150120
<BR>
输入格式02为:2015-01-20
<BR>
<input type="submit" value="提交">
</form>
</body>
</html>
第07步:编写数据显示界面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<html>
<body>
${lilan.birthday }
</body>
</html>
/*****************以上是局部类型转换器,以下是全局类型转换器********************/
第01步:将property文件重命名为(xwork-conversion.properties)
第02步:将property文件移到src目录下
第03步:property配置:(这里代表的是,工程下所有Date类型,都使用这个转换器)
java.util.Date=com.self.conversion.DataTransform
struts局部、全局类型转换器的更多相关文章
- struts2视频学习笔记 13-14(自定义局部和全局类型转换器(转换Date格式))
课时13 自定义类型转换器 局部(对某个action类) package tutorial; import java.util.Date; public class HelloWorld { priv ...
- Struts2之自定义局部类型转换器、全局类型转换器
Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用 ...
- Struts 2 之类型转换器
Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用d ...
- Struts 2 类型转换器 输入校验 拦截器
Struts 2中内建了字符串类型和常见类型之间相互转换的转换器,能满足大多数转换需求,但不能完成字符串和User对象之间的转换. OGNL项目中有一个TypeConvert接口,这个接口是自定义类型 ...
- 8.Struts2类型转换器
类型转换器1.引入在Struts2中,请求参数类型不仅可以是String,还可以是其它类型.如,定义一个请求参数birthday为Date类型,给其赋值为1949-10-1,则birthday接收到的 ...
- struts2 笔记02 文件上传、文件下载、类型转换器、国际化的支持
Struts2的上传 1. Struts2默认采用了apache commons-fileupload 2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload ...
- Struts2初学 struts2自定义类型转换器
一.问题的引出 Struts2的类型转换是基于OGNL表达式的,由于请求的参数都是字符串,而JAVA 本身属于强类型的的语言,这样就需要把请求参数字符串转换成其他类型. Struts ...
- struts2 基础2 类型转换器
struts2常用常量的定义与意义 每一次请求都会创建一个新的action,所以struts2的action是线程安全的 拆分struts 为应用指定多个struts配置文件 src 下为各应用配置的 ...
- struts2学习笔记之十一:struts2的类型转换器
Struts2的类型转换器 如何实现Struts2的类型转换器? * 继承StrutsTypeConverter * 覆盖convertFromString和convertToString 注 ...
随机推荐
- Bootstrap 路径分页标签和徽章组件
一.路径组件 路径组件也叫做面包屑导航. //面包屑导航 <ol class="breadcrumb"> <li><a href="#&qu ...
- CDH介绍
本文引用自:Cloudera 系列2:CDH介绍http://www.aboutyun.com/thread-18379-1-1.html(出处: about云开发) CDH提供: 灵活性-存储任何类 ...
- python环境搭建
Python下载 Python最新源码,二进制文档,新闻资讯等可以在Python的官网查看到: Python官网:http://www.python.org/ 你可以在一下链接中下载Python的文档 ...
- MyBatis-Generator 最佳实践
为数据库中的表A生成A.java, A.java, A.xml 由于该插件生成的A.java, A.xml会带有example, 不希望生成example 数据库中的字段写有注释, 希望注释能自动生成 ...
- 【android学习3】解决Android界面布局添加EditView之后无法预览问题
在设计登陆界面时,拖入一个EditView之后发现界面无法预览 问题分析: 进入xml源文件里发现一个警告,提示添加inputType或者hint元素,添加后界面仍然无法预览... 仔细查看了当前使用 ...
- php动态读取数据清除最右边距
需求效果一行3栏: 场景模拟:同事给了我这么一段静态代码如下: <!DOCTYPE html> <html lang="en"> <head> ...
- JavaScipt选取文档元素的方法
摘自JavaScript权威指南(jQuery根据样式选择器查找元素的终极方式是 先用getElementsByTagName(*)获取所有DOM元素,然后根据样式选择器对所有DOM元素进行筛选) 选 ...
- MVC 中的 ViewModel
此文章总结自:http://rachelappel.com/use-viewmodels-to-manage-data-amp-organize-code-in-asp.net-mvc-applica ...
- Java学习-010-创建文件夹源代码
此文源码主要为应用 Java 创建文件目录的源码.若有不足之处,敬请大神指正,不胜感激! 创建文件夹源代码如下所示: /** * @function 文件操作:创建文件夹.若文件夹不存在,则级联创建文 ...
- Java学习-009-文件名称及路径获取实例及源代码
此文源码主要为应用 Java 获取文件名称及文件目录的源码及其测试源码.若有不足之处,敬请大神指正,不胜感激!源代码测试通过日期为:2015-2-3 00:02:27,请知悉. Java获取文件名称的 ...