第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局部、全局类型转换器的更多相关文章

  1. struts2视频学习笔记 13-14(自定义局部和全局类型转换器(转换Date格式))

    课时13 自定义类型转换器 局部(对某个action类) package tutorial; import java.util.Date; public class HelloWorld { priv ...

  2. Struts2之自定义局部类型转换器、全局类型转换器

    Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器  如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用 ...

  3. Struts 2 之类型转换器

    Struts2自定义类型转换器分为局部类型转换器和全局类型转换器 (1)局部类型转换器 如果页面传来一个参数reg.action?birthday=2010-11-12到后台action,然后属性用d ...

  4. Struts 2 类型转换器 输入校验 拦截器

    Struts 2中内建了字符串类型和常见类型之间相互转换的转换器,能满足大多数转换需求,但不能完成字符串和User对象之间的转换. OGNL项目中有一个TypeConvert接口,这个接口是自定义类型 ...

  5. 8.Struts2类型转换器

    类型转换器1.引入在Struts2中,请求参数类型不仅可以是String,还可以是其它类型.如,定义一个请求参数birthday为Date类型,给其赋值为1949-10-1,则birthday接收到的 ...

  6. struts2 笔记02 文件上传、文件下载、类型转换器、国际化的支持

    Struts2的上传 1. Struts2默认采用了apache commons-fileupload  2. Struts2支持三种类型的上传组件 3. 需要引入commons-fileupload ...

  7. Struts2初学 struts2自定义类型转换器

    一.问题的引出      Struts2的类型转换是基于OGNL表达式的,由于请求的参数都是字符串,而JAVA 本身属于强类型的的语言,这样就需要把请求参数字符串转换成其他类型.     Struts ...

  8. struts2 基础2 类型转换器

    struts2常用常量的定义与意义 每一次请求都会创建一个新的action,所以struts2的action是线程安全的 拆分struts 为应用指定多个struts配置文件 src 下为各应用配置的 ...

  9. struts2学习笔记之十一:struts2的类型转换器

    Struts2的类型转换器   如何实现Struts2的类型转换器? * 继承StrutsTypeConverter * 覆盖convertFromString和convertToString   注 ...

随机推荐

  1. 我的第一个chrome扩展(2)——基本知识

    1.manifest介绍界面:json格式 json:JavaScript Object Notation 包括两种结构: key:value对:{{"A1":"valu ...

  2. VS下如何调试多线程

    四步即可 1.打开多线程窗口,找到当前线程 此时,出现窗口如下: 2.右击任意位置,选中全部线程 3.停止全部线程 此时,线程状态如下: 4.单独启动当前线程:先单击当前线程,在点击启动按钮,如下红色 ...

  3. String.format(转)

    转自:http://blog.csdn.net/lonely_fireworks/article/details/7962171 方便自己查阅. 常规类型的格式化 String类的format()方法 ...

  4. HTML知识点总结以及典型例子讲解

    一.HTML文本格式化标签(这些标签都不换行) eg: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&qu ...

  5. Selenium2学习-021-WebUI自动化实战实例-019-设置浏览器窗口位置大小

    前文简略讲述了如何获取浏览器窗口的位置和大小,此文讲述如何通过 webdriver 设置浏览器窗口的位置和大小. 直接上码了...... /** * Set browser size for expe ...

  6. channelartlist添加栏目链接

    {dede:channelartlist} <a href='{dede:field name='typeurl'/}'></a> {/dede:channelartlist}

  7. iOS:后台定位并实时向服务器发送位置

    第一步:开启后台模式,选中定位,选择project --> capabilities-->Backgorund Modes --> Location updates 如图: 第二步: ...

  8. 笔记:ASP.NET MVC安全

    XSRF/CSRF Prevention in MVC ValidateAntiForgeryToken 参考这里的简单例子:http://www.asp.net/mvc/tutorials/mvc- ...

  9. Android 开发环境搭建以及编译

    两种搭建编译环境的方式,一种方法是用户安装虚拟机,然后安装基础的Ubuntu12.04.2 系统,利用提供的工具和详细的使用步骤,搭建编译环境:另外一种方法是用户安装虚拟机,然后直接加载 “搭建好的U ...

  10. Java基础之在窗口中绘图——使用模型/视图体系结构在视图中绘图(Sketcher 1 drawing a 3D rectangle)

    控制台程序. 在模型中表示数据视图的类用来显示草图并处理用户的交互操作,所以这种类把显示方法和草图控制器合并在一起.不专用于某个视图的通用GUI创建和操作在SketcherFrame类中处理. 模型对 ...