我用的是struts 1.3
好像在struts中需要录入数据,但是struts不支持对Date对象的解析,大家有什么好办法去将string转换成Date吗?
好像在struts中需要录入数据,但是struts不支持对Date对象的解析,大家有什么好办法去将string转换成Date吗?
解决方案 »
- Publishing to Tomcat 6.8 has encountered a problem
- 大家帮我看看这个错误提示。。。我死活找不到
- 请教一个框架的问题!很急!谢谢了啊
- struts模块间转发问题
- Picoconntainer的几个问题
- 请问如何实现这样的一个通用页面
- 怎么保持jsessionId 不变
- 引用jstl的核心标签错误!
- 超级难题,Tomcat+Jbuilder配置问题,利用Jbuider启动Tomcat服务的问题?
- 为什么本来能打开的JSP页面,换了一个工程就打不开了?
- 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);
}}