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 注 ...
随机推荐
- 自动adsl拨号上网
@echo offmode con cols=35 lines=6 & color 5Btitle 开机连接宽带--设置工具 QQ1009693258echo 请稍候...VER|FIND & ...
- 1001 数组中和等于K的数对
1001 数组中和等于K的数对 基准时间限制:1 秒 空间限制:131072 KB 给出一个整数K和一个无序数组A,A的元素为N个互不相同的整数,找出数组A中所有和等于K的数对.例如K = 8,数组A ...
- Protocol and Delegate
为什么使用委托? 答:比如,我上班的工作主要内容包括 (1)写代码(2)写文档(3)测试程序(4)接电话(5)会见客户 (1)(2)我自己全权负责,但是后面(3)(4)(5)我不想或者不方便自己做,所 ...
- 利用ArcMap对tiff或jpg格式地图图片的配准步骤
原文:利用ArcMap对tiff或jpg格式地图图片的配准步骤 在实际应用中,经常会遇到提供一张高精度的地图图片文件,如何对将该图片进行配准(使图片具有经纬度坐标). 当然我们得有一些大概的参考图层, ...
- 利用HTML和JS制作隔行换背景颜色的表格
1.源代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://ww ...
- Asp.net MVC 中超链接的三个方法及比较
在Asp.net WebForm开发中,我们通过a标签进行跳转时,通常的写法是:<a href="index.aspx">首页</a>, 在Asp.net ...
- ASP.NET中application对象的用法
一.Application对象的理解 Application对象在实际网络开发中的用途就是记录整个网络的信息,如上线人数.在线名单.意见调查和网上选举等.在给定的应用程序的多有用户之间共享信息,并在服 ...
- empty()函数经典详解
<?php /** * 当var不存在,返回TRUE; * 当var存在,并且是一个非空非零的值(真值)时返回 FALSE 否则返回 TRUE . * 以下的东西被认为是空的: * * 1.&q ...
- 感知开源的力量-APICloud Studio开源技术分享会
2014.9.15 中国领先的“云端一体”移动应用云服务提供商APICloud正式发布2015.9.15,APICloud上线一周年,迎来第一个生日这一天,APICloud 举办APICloud St ...
- JBoss远程方法调用漏洞利用详解
早上起床打开微博看到空虚浪子心大神发的一篇有关Jboss漏洞的文章,对我等菜鸟来说那边文章看起来还是很吃力的,所以查了查国内外的资料,翻译写了这边文章,记录一下. 在JBoss服务器上部署web应用程 ...