我用的是struts 1.3
好像在struts中需要录入数据,但是struts不支持对Date对象的解析,大家有什么好办法去将string转换成Date吗?
好像在struts中需要录入数据,但是struts不支持对Date对象的解析,大家有什么好办法去将string转换成Date吗?
解决方案 »
- 在eclipse中建立资源文件时,在java下找不到Property File
- compass异常: org.compass.core.config.ConfigurationException: Schema system id
- 十万火急#########%%%%%%%%%%%*****************
- Eclipse下Tomcat中Hibernate使用数据源出错!
- 华为一道框架笔试题,有兴趣的进来看看了
- 中文编码问题Linux正常Windows乱码
- 我连接SQL2000时,JDBC出问题,提示:aq.executeQuery: [Microsoft][SQLServer 2000 Driver for JDBC]End of stream was de tected on a
- 怎样配置STRUTS环境?
- 求大神指点哪配置错了springMVC配置错误404
- POI复制问题
- jsp+jstl标签运行打印输出错误
- 求一个struts2+jquery+ajax的校验例子,最最最简单即可。
javabean里面用java.sql.Data
String s="1998-01-02";
Date date = formatter.parse(s);
我同意这个。。如果是Hibernate的话,最好把映射文件里的type改成java.sql.Date..
public class UtilDateConverter implements Converter {
private static SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); public Object convert(Class type, Object value) {
if (value == null) {
return value;
}
if (value instanceof Date) {
return value;
}
if (value instanceof String) {
try {
return format.parse((String)value);
} catch (ParseException ignore) {
}
}
return null;
}}
然后在弄个servlet 。InitServlet.javapublic class InitServlet extends HttpServlet { @Override
public void init() throws ServletException {
//注册日期类型的转换器
ConvertUtils.register(new UtilDateConverter(), Date.class); }}
注意配置 InitServlet 哦 在 web.xml 里里面配置
<servlet>
<servlet-name>initServlet</servlet-name>
<servlet-class>com.xxx.xxx.xxx.InitServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
所以应该怎么讲string转换成date呢。。
如7楼所说,采用Converter方式可以处理,然后通过Servlet加载,印象在中,也可以通过Plug-In的方式进行加载。
import org.apache.commons.beanutils.Converter;
import java.util.Set;
import java.util.HashSet;
import java.util.Iterator;
import java.text.ParseException;/**
*
* 日期转换对象,使用该转换器,在BaseForm当中做一下注册,系统自动地帮助字符的日期表示转换为java.util.Date对象.
* @author zizz.
* Create Time:2006-9-11 19:11:47.
*/
public class DateConverter implements Converter {
/**
* 日期格式化对象.
*/
private static SimpleDateFormat df = new SimpleDateFormat();
/**
* 模式集合.
*/
private static Set<String> patterns = new HashSet<String>();
//注册一下日期的转换格式
static{
DateConverter.patterns.add("yyyy-MM-dd");
DateConverter.patterns.add("yyyy-MM-dd HH:mm");
DateConverter.patterns.add("yyyy-MM-dd HH:mm:ss");
DateConverter.patterns.add("yyyy/MM/dd HH:mm:ss");
}
/**
* 日期转换器.
* @param type Class
* @param value Object
* return Date Object.
*/
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){
//do iterator continue
}
}
return dateObj;
}else{
return null;
}
}
}在Form里注册
public class UserForm extends ActionForm{
static{
ConvertUtils.register(new DateConverter(), Date.class);
}}