在struts1.x中设置对java.util.Date类型支持
来源:互联网 发布:mac粉底液色号怎么选 编辑:程序博客网 时间:2024/06/10 04:36
由于Struts的支持包commons-beanutils.jar里面的转换器并不支持java.util.Date类型(但是支持java.sql.Date、java.sql.Time、java.sql.Timestamp类型),所以我们需要通过编程来处理此问题。
1、编写转换类
package cn.steven.web.util;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import org.apache.commons.beanutils.Converter;
public class DateConverter implements Converter {
private static SimpleDateFormat df = new SimpleDateFormat();
private static Set<String> patterns = new HashSet<String>();
static {
DateConverter.patterns.add("yyyy-M-d");
DateConverter.patterns.add("yyyy-M-d H:m");
DateConverter.patterns.add("yyyy-M-d H:m:s");
DateConverter.patterns.add("yyyy-M-d H:m:s.S");
}
public Object convert(Class type, Object value) {
if (value == null) {
// 如果为空,返回
return null;
} else if (value instanceof String) {
Object dateObj = null;
Iterator it = patterns.iterator();
while (it.hasNext()) {
try {
String pattern = (String) it.next();
df.applyPattern(pattern);
dateObj = df.parse((String) value);
break;
} catch (ParseException ex) {
// 不做处理继续下一次迭代
}
}
return dateObj;
} else {// 如果类型不是字符串,不转换
System.out.println("Date format is error!");
return null;
}
}
}
2、编写插件类
package cn.steven.web.util;
import javax.servlet.ServletException;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class DateConverterPlugin implements PlugIn {
public void destroy() {
// 把注册移除
ConvertUtils.deregister();
}
public void init(ActionServlet arg0, ModuleConfig arg1)
throws ServletException {
// 注册轮换器
ConvertUtils.register(new DateConverter(), java.util.Date.class);
}
}
3、注册插件(在struts配置文件中设置)
<plug-in className="cn.steven.web.util.DateConverterPlugin" />
4、应用代码示例(两种方法任选)
<html:form action="/actionpathname">
日期类型 : <input name="date"
value="<fmt:formatDate value='${dForm.date}' pattern='yyyy-MM-dd HH:mm:ss.SSS' />" />
</html:form>
-----------------------------------------------------------------------------------------------------
<html:form action="/d">
日期类型 : <input name="date"
value="<bean:write name='dForm' property='date'
format='yyyy-MM-dd HH:mm:ss.SSS' />" />
</html:form>
祝大家使用愉快!
- 在struts1.x中设置对java.util.Date类型支持
- hibernate中java.util.Date类型映射
- Struts1,ActionForm对Date类型的处理
- jaxb中对java.util.Date的处理
- Date类型的实体类属性中,Date必须是Java.util.Date,而不能是Java.sql.Date
- javaweb中如何将java.util.Date类型转换成java.sql.Date
- 让BeanUtils的copyProperty方法支持String与java.util.Date的类型转换
- Struts1.x处理Date类型数据的方法
- Struts1.x处理Date类型数据的方法
- 如何把java.util.Date对象保存到SQLServer中类型为datetime类型字段中
- 在JDBC操作中关于java.util.Date跟java.sql.Date之间的转换问题
- java中对Date类型的一些处理
- Oracle数据库中插入日期,日期带有时分秒(java.util.Date类型)
- java.sql.date 跟java.util.date的区别 和怎么在oracle数据库中显示时分秒
- Java中util.Date和sql.Date的相互转换
- JSONObject处理Date类型 java.sql.Date 转化java.util.Date 问题
- 解决mysql 数据库中日期类型00:00:00 的问题 设置xml数据类型:java.util.Date
- java.util.Date类型与java.sql.Date类型的互转
- 最短乘车路线查询
- 消息传递和 Java 消息服务(JMS)
- xml续
- 查询各节点的父路径函数
- 行列转换统计
- 在struts1.x中设置对java.util.Date类型支持
- PowerShell学习
- 佣金报表按销售单数量2个及2个以上进行统计
- 一段时间段内的星期几到星期几的集合
- 动态sql语句基本语法
- mysql 中sql文实现两个dateTime类型的字段相差的小时数精确到0.0000收藏
- 月报查询问题
- 汇率相关函数
- C#三种模拟自动登录和提交POST信息的实现方法