Struts2有两种类型转化器:

一种局部,一种全局.

如何实现:

第一步:定义转化器

第二部:注册转化器

下面做一个局部类型转化器的实例。

我们在上面一片日志说过有个变量date类型的。只有我们输入格式为yyyy-MM-dd的日期类型才会有效。否则则无效。那么我就需要一个类型转化当输入为yyyy-MM-dd的日期类型也能有效,该怎么做?

这时候我们需要一个自定义的类型转化器。

首先我们定义一个类型转化器

我们的类为:DateTypeChange.java

package com.fish;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.Map;

import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;

publicclass DateTypeChange extends DefaultTypeConverter{//首先得继承默认转化器类

@Override

public Object convertValue(Map<String, Object> context, Object value,

Class toType) {//第二个参数是你的要转化的数据就是我们下面test.Java的brithday属性的值,第三个参数是你传进来的数的值

SimpleDateFormat format=new  SimpleDateFormat("yyyyMMdd");//创建一个日期类型的排版格式。

try {

if(toType==Date.class){

String[] parm=(String[])value;

return format.parse(parm[0]);

}elseif(toType==String.class){

Date date=(Date)value;

return format.format(date);

}

} catch (Exception e) {

}

returnnull;

}

}

类型转化器书写完毕,接着应该写一个注册文件关联类型转化器和你想转化属性的那个类(这个文件写在转化器的同一个包下)

书写格式:“要转化的属性的类型(不加包名)”+conversion.properties。

文件里面写:brithday=com.fish.DateTypeChange

顺便把其他几个test.Java也写上:

package com.fish;

import java.util.Date;

publicclass Test {

private String name;

private String id;

private Date brithday;

public Date getBrithday() {

returnbrithday;

}

publicvoid setBrithday(Date brithday) {

this.brithday = brithday;

}

public String getName() {

returnname;

}

publicvoid setName(String name) {

this.name = name;

}

public String getId() {

returnid;

}

publicvoid setId(String id) {

this.id = id;

}

public String execute(){

return"success";

}

}

接着:Struts2.xml:

<package name="fish" namespace="/test" extends="struts-default">

<action name="redfish" class="com.fish.Test" method="execute">

<param name="name">xxxx</param>

<result  name="success">/index.jsp</result>

</action>

然后:MyJsp.JSP

<form action="/struts2test4/test/redfish.action">&nbsp;

<input type="text"  name="username">

<input type="text" name="id">

<input type="text" name="brithday">

<input type="submit" value="确定">

最后:index.JSP

name=${name}<br>

id= ${id}  <br>

brithday=${brithday}<br>

这时我们在index.JSP页面中输入yyyyMMdd类型的日期类型时,struts2也能转化成日期格式处理了。

当然如果你想写全局转化器。

只要改properties文件:

将他移动到web-inf/classess下,命名是

xwrok-conversion.properties

在里面的内容:

转化的类型(有包名的)=转化器(包名的)

所以是这么写

Java.util.Date=com.fish.DateTypeChange

意思是说对于所有date类型我都可以转化为这种格式处理。

最新文章

  1. 【笔记】js获取当前点击元素的索引
  2. HTML5按钮的点击态问题
  3. hangfire+bootstrap ace 模板实现后台任务管理平台
  4. 在unix系统下的 .o文件 .a文件 .so文件说明和相互关系
  5. go安装windows源码
  6. UNITY3D MAC版本破解
  7. 使用Windbg和SoS扩展调试分析.NET程序
  8. linux下查看磁盘空间
  9. 使用XCode---下载组件
  10. mysql 变量is null 和 not exists区别
  11. VNC轻松连接远程Linux桌面
  12. Eclipse 改变字体大小,设置背景色
  13. Minimize the error CodeForces - 960B
  14. python 多线程 及多线程通信,互斥锁,线程池
  15. Docker(1):CentOS7 安装Docker
  16. Appium + Python环境搭建(移动端自动化)
  17. git命令之git clone用法
  18. IntelliJ IDEA中的properties文件乱码转成中文[unicode码转中文]
  19. 小白日记53:kali渗透测试之Web渗透-SSL、TLS中间人攻击(SSLsplit,Mitmproxy,SSLstrip),拒绝服务攻击
  20. DBA眼中的CLR

热门文章

  1. Tutorial 1: Serialization
  2. HDU 2647 Reward(拓扑排序+判断环+分层)
  3. ZOJ 1610 Count the Colors(区间染色)
  4. Ecshop二次开发修改
  5. a:hover伪类在ios移动端浏览器内无效的解决方法
  6. django orm如何作一个优雅一点的filter?
  7. 解决IE的背景颜色透明子元素不透明问题
  8. Linux下文件特殊权限
  9. LR参数组取值操作方法
  10. Robot Framework Selenium(RFS :web自动化测试神器)