类型转换器是将浏览器传递的参数进行转换为了与服务器端的参数匹配,先举个例子如果我们想往服务器传递日期类型的参数时我们要怎么让浏览器传过去的让服务器明白

我们新建一个类 ConverterTest.java

package com.day03;

import java.util.Date;

public class ConverterTest {

private Date birthday;
private String bir;

public void setBirthday(Date birthday){
this.birthday = birthday;
}
public  Date getBirthday(){

return this.birthday;

}

public String execute(){
return "success";
}
}

然后我们在/WEB-INF/page/birthday.jsp 这里只需要<body><center><h1>${bir}</h1></center></body>这样就能在页面显示数据

最后在struts.xml中配置action

<action name="birthday" class="com.day03.ConverterTest">
<result>/WEB-INF/page/birthday.jsp</result>
</action>

我们直接访问http://localhost/Struts/day03/birthday.do?birthday=2012-02-27时显示服务器能解析2012-02-27

那么我们用的不是2012-02-27 而是 20120227 呢

什么都没有,现在我们来用自定义转换器转换 让服务器能识别20120227

首先格式转换器分为局部的和全局的

局部类型转换器

首先我们新建转换器类MyConverter.java

必须继承上面的类 第一个和第二个 我试了试 都好使 反正继承DefaultTypeConverter类

然后重写方法

@Override
public Object convertValue(Map<String, Object> context, Object value,
Class toType) {
// TODO Auto-generated method stub
return super.convertValue(context, value, toType);
}

value是浏览器传递的数据toType是待转换的类型 这里是Date.class

然后在函数中实现相关的转换

@Override
public Object convertValue(Map<String, Object> context, Object value,
Class toType) {
// TODO Auto-generated method stub
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); //创建日期转换对象
String[] birthday = (String[]) value; //将浏览器传递的数据转换成字符串数组
Date date = new Date();

try {
date = sdf.parse(birthday[0]); //将字符串数组的第一个数字转换成日期类型
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

return date;
}

上面讲浏览器传递的数据转换成字符串数组是因为struts传递的数据是通过数组的形式传递,因为可能有些参数时同名的一个名字有好几个值所以先转换成字符数组

下面我们在ConterverTest.java的包下创建配置文件

名字必须是 需要转换的类名-conversion.properties  这里是conterverTest-conversion.properties;

里面的格式是

需要转换的字段 = 类型转换器的绝对路径

这里是birthday = com.day04.Converter

细心的读者可以看到上面的url和以前的不,是因为昨天struts的问题调了一天也没有调出来 今天重新做的一个 但是步骤代码是一样的

下面我们来看看全局的类型转换器 首先删除配置文件ConverterTest-conversion.properties

然后在src下创建配置文件 xwork-conversion.properties里面这样配置

java.util.Date = com.day04.Converter

还是好使 的

最新文章

  1. python学习3
  2. WCF服务承载(笔记)
  3. web三种跨域请求数据方法
  4. 简述MVC框架模式以及在你(Android)项目中的应用
  5. Windows 2008远程多用户登录的配置方法(转载)
  6. java generic type
  7. HDU4966 GGS-DDU(最小树形图)
  8. shorter concat [reverse longer]
  9. Android_sharePreference
  10. jade中mixin的使用
  11. 聊聊并发(六)——ConcurrentLinkedQueue的实现原理分析
  12. [PKU2389]Bull Math (大数运算)
  13. iOS获取WIFI的IP、子网掩码,以及域名转IP
  14. 横向、纵向时间轴timeline系列
  15. 客户端一致性与多Leader机制------《Designing Data-Intensive Applications》读书笔记7
  16. 1-3 hibernate核心对象关系映射 xxx.hbm.xml
  17. 【Git之旅】2.Git对象
  18. 关于ajax请求数据,并将数据赋值给全局变量的一些解决方法
  19. Python程序员常用的IDE和其它开发工具
  20. jmeter脚本录制的两种方式

热门文章

  1. C#-实验3
  2. &lt;poj - 2139&gt; Six Degrees of Cowvin Bacon 最短路径问题 the cow have been making movies
  3. WPF Application
  4. teyi
  5. db2 常用配置
  6. JQuery笔记(二)jq常用方法animate()
  7. CentOS7 citus9.5 集群安装及管理
  8. 关于PHPAPI ZEND_API TSRM_API宏的定义
  9. 学习node的REPL
  10. python 学习 [day8]class成员