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 注 ...
随机推荐
- Qt数据库操作(qt-win-commercial-src-4.3.1,VC6,Oracle,SQL Server)
qt-win-commercial-src-4.3.1.qt-x11-commercial-src-4.3.1Microsoft Visual C++ 6.0.KDevelop 3.5.0Window ...
- VS2015 多项目源码共享链接
Eclipse有这个功能,在一个项目中加入另一个项目文件夹的引用,源码包含过来,这样不必copy一份代码,只需要维护一份源代码.一直想在VS中找到这个功能,目前项目需要,终于google到了. htt ...
- MongoDB创建用户
1.在创建用户之前,我们首先应该启动mongodb的用户验证功能,否则建立用户是没有意义的! 2.使用 //这个123用户拥有test1数据库的数据库管理员权限,拥有test2数据库的读取权限 db. ...
- ExtractTablesFromSQL
public static string[] ExtractTablesFromSQL(string cmdString) { return Regex.Matches(cmdString, @&qu ...
- Windows-001-Win7系统变量设置
本节主要讲述Windows系统环境变量配置介绍,以 Windows 7 为例讲解. 1.右键单击 计算机,选择 属性,进入 系统 界面,如下所示: 2.点击上图中的 高级系统设置,进入 系统属性 界面 ...
- TestNG学习-002-annotaton 注解概述及其执行顺序
此文主要讲述用 TestNG 基础的 annotation (注解)知识,及其执行的顺序,并通过一个 TestNG 简单的实例演示 annotation 的执行顺序. 希望能对初学 TestNG 测试 ...
- Selenium2学习-008-WebUI自动化实战实例-006-易迅登录之 frame 处理
此文主要讲述用 Java 编写 Selenium 自动化测试脚本编写过程中,在因 frame 标签导致页面定位失败,提示 NoSuchElementException 时的,页面元素定位前的 fram ...
- android studio 0.8.11 如何导入Library(新手向)
网上下了个ViewPagerIndicator的库,下载下来是个zip包,解压开来,里面有一个library和一个sample文件夹,还有一些其他的配置文件. 其中library就是我们新项目中要引入 ...
- linux i2c tools
最近要操作eeprom,所以了解一下i2c-tool的使用方法,记录于此. 参考链接: http://www.myir-tech.com/bbs/thread-7567-1-1.html http:/ ...
- calc 的使用
通常情况下,一个元素节点使用固定定位absolute和固定定位fixed,会遇到一个问题,如果设置100% ,此时你在对他设置padding,border,margin,它就会撑满 具体情况如下图: