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

我们新建一个类 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

还是好使 的

Struts入门学习(三)---自定义类型转换器的更多相关文章

  1. mybatis入门系列三之类型转换器

    mybatis入门系列三之类型转换器 类型转换器介绍 mybatis作为一个ORM框架,要求java中的对象与数据库中的表记录应该对应 因此java类名-数据库表名,java类属性名-数据库表字段名, ...

  2. Struts(二十):自定义类型转换器

    如何自定义类型转换器: 1)为什么需要自定义类型转化器?strtuts2不能自动完成字符串到所有的类型: 2) 如何定义类型转化器? 步骤一:创建自定义类型转化器的类,并继承org.apache.st ...

  3. Struts2框架的自定义类型转换器

    前言:对于java的基本数据类型及一些系统类(如Date类.集合类),Struts2提供了内置类型转换功能,但是也有一定的限制.所以就演示出自定义类型转换器 一.应用于局部类型转换器 eg.用户登录出 ...

  4. struts2基础---->自定义类型转换器

    这一章,我们开始struts2中自定义类型转换器的学习. 自定义类型转换器

  5. [原创]java WEB学习笔记67:Struts2 学习之路-- 类型转换概述, 类型转换错误修改,如何自定义类型转换器

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  6. 《SpringMVC从入门到放肆》十二、SpringMVC自定义类型转换器

    之前的教程,我们都已经学会了如何使用Spring MVC来进行开发,掌握了基本的开发方法,返回不同类型的结果也有了一定的了解,包括返回ModelAndView.返回List.Map等等,这里就包含了传 ...

  7. sruts2 自定义类型转换器

    1.1.1    Struts2中自定义类型转换器:(了解) 类型转换的过程是双向的过程: JSP---->Action参数提交:String---Date. Action---->JSP ...

  8. 自定义类型转换器converter

    作用:目前将日期转换成string,将string转换成我想要的类型   0509课件里讲 一.数据类型转换在web应用程序中,数据存在两个方向上的转换:1.当提交表单时  表单数据以字符串的形式提交 ...

  9. struts2自定义类型转换器

    首先,何为struts2的类型转换器? 类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行相互转换. 一.大部分时候,使用struts2提供的类型转换器以及OGNL类型转换机 ...

随机推荐

  1. selenium2使用记录

    安装 pip install selenium web phantomjs下载 :http://phantomjs.org/download.html 浏览器驱动下载:http://www.selen ...

  2. centos安装ganttproject

    官网下载 http://www.ganttproject.biz/ 我的JAVA早已经安装了. 问题:root #ganttproject 提示org.bardsoftware.eclipsito.B ...

  3. find用法积累

    查找目录下的所有文件中是否含有某个字符串 find .|xargs grep -ri "IBM" 查找目录下的所有文件中是否含有某个字符串,并且只打印出文件名 find .|xar ...

  4. LoRaWAN_stack移植笔记(一)--RF硬件相关

    和硬件相关的问题 TCXO 的使用 根据SX1276数据手册, 如果使用TCXO,则需要配置RegTcxo寄存器为0x19,代码如下 ``` c void SX1276SetTcxoConfig(vo ...

  5. 浏览器的云加速可能导致IP统计异常

    前段时间弄个流量统计相关的东西,请求展示图片时根据请求的IP进行 md5 签名生成点击链接的验证参数,结果发现一个莫名其妙的问题 发现点击日志中有一小部分点击的IP居然不一致,如果是开放给别人用可能存 ...

  6. JDK根目录介绍

    /bin 存放可执行程序(编译器javac.exe 运行器java.exe 文档生成器javadoc.exe等 ). /db  小型数据库文件. /jre JRE. /include 形成jdk的c. ...

  7. php函数搜集

    数组去重: 方法1:php自带此功能的函数array_unique($arr) 方法2:$arr = array_flip(array_flip($arr)); //这样便可以删除重复元素. 比上面的 ...

  8. 安装器---Inno Setup

    Inno Setup[1]  用Delphi写成,其官方网站同时也提供源程序免费下载.它虽不能与Installshield这类恐龙级的安装制作软件相比,但也当之无愧算是后起之秀.Inno Setup是 ...

  9. HDU 2177 取(2堆)石子游戏 (威佐夫博弈)

    题目思路:威佐夫博弈: 当当前局面[a,b]为奇异局时直接输出0 否则: 1.若a==b,输出(0 0): 2.将a,b不停减一,看能否得到奇异局,若有则输出: 3.由于 ak=q*k(q为黄金分割数 ...

  10. JavaScript DOM编程艺术-学习笔记(第七章)

    第七章: 1.dom方法创建并且插入标签:(这种方法并没有改变文档的物理内容,而是在改变dom树) ①创建元素节点:createElement(); ②内部前插入:appendChild() ③创建文 ...