struts中的actionform问题
在actionform中所有的jsp页面元素都能被自动接收并转换为相对应的类型,唯独一个漏网之鱼,就是date对象,需要自己手动进行转换,那么是struts框架故意做成这样还是一个漏洞?如果是故意做成这样,意义何在?
------解决方案--------------------date 要手动封装到bean里
------解决方案--------------------要手动封装下
------解决方案--------------------一:字面都会转化成字符串形式,如果20000-10-10 这个是否符合形式呢?有可能出现异常。出现异常是否是工程所需呢?
二:只是一个字面转化就整的这么麻烦,索性还不如给客户自定义。
------解决方案--------------------package com.zzq.oa.util;
import
java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.beanutils.Converter;
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;
}
}
package com.zzq.oa.util;
import java.util.Date;
import javax.servlet.ServletContext;
import
javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.apache.commons.beanutils.ConvertUtils;
public class InitServlet extends HttpServlet {
@Override
public void init() throws
ServletException {
//注册日期类型的转换器
ConvertUtils.register(new UtilDateConverter(), Date.class);
}
}