在示范中心项目中,我们把ActionForm中日期类型的字段指定为String类型,而在对应的JavaBean中指定为java.sql.Date类型。当用户提交表单的时候,在Action里使用BeanUtils.copyProperties()方法从ActionForm构造JavaBean对象(详见利用BeanUtils在对象间复制属性)。这个方法在大部分时候都很好,但有一个问题,就是当用户没有填写日期类型字段时(而该字段并非必填),validator不会提出警告,而在copyProperties()时会报类型转换异常,原因是这时ActionForm中的该字段的值是空字符串(""),负责字符串向Date转换的SqlDateConverter类调用Date.valueOf("")方法,显然""是无法转换为日期的,所以会抛出异常。
通过查看代码和资料,我发现这个问题的解决方法其实非常简单。只要把带缺省值参数的SqlDateConverter重新注册一下,覆盖原有的注册信息就可以了,这个注册语句一般是写在系统初试化的地方,对于Struts应用程序,当然做在PlugIn里最方便。代码如下:
package etc;
import javax.servlet.ServletException;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.converters.SqlDateConverter;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class ConverterPlugIn implements PlugIn{
public void init(ActionServlet servlet, ModuleConfig config) throws ServletException {
ConvertUtils.register(new SqlDateConverter(null),java.sql.Date.class);
}
public void destroy() {
ConvertUtils.deregister();
}
}
注意SqlDateConverter的构造方法是带有参数null的,这表示遇到不能解析的字符串就返回空值。而deregister()方法的作用是恢复ConvertUtils的缺省注册表。为了使这个PlugIn起作用,要在struts-config.xml里增加一句话:
<plug-in className="etc.ConverterPlugIn" />
日期字段往往会给我们的开发带来麻烦,其实在Struts应用程序里,只要把这些转换类搞熟了,总可以找到很方便的办法。常见的问题还有如何指定日期输入格式,怎样处理java.util.Date的转换,等等,在这个链接里有解决这些问题的方法,道理都是一样的。
分享到:
相关推荐
程序一是对彩色图像进行中值滤波处理,程序二是给出了jpg格式转索引图像,对初学者学习matlab很有帮助
中值滤波器,窗口大小不变,可以实现快速排序
极值中值滤波编码,在matlab环境下的编码,采用极值中值编码,
中值滤波的算法实现过程,重点是排序,最常用的冒泡排序~~ 把滤波区间的数据从小到大进行排序,然后取中值,(如果是奇数个数据,那么中值就只有一个了,如果偶数个数据,中值有两个,可以对两个数据再求平均)
是用VC实现对BMP图象的中值滤波程度,比较简单
在matlab 下的自适应中值滤波。可以处理彩色图像
图像处理,均值值滤波,平滑图像,可以直接用,直接复制粘贴就行。
三种图像去噪源码(matlab实现) 1.均值滤波对高斯噪声的效果 2.二维自适应维纳滤波对高斯噪声的滤除效果 3.对加入椒盐噪声的图像分别作均值、中值和维纳滤波
这里所说的改进,主要是指中值计算方法的改进,求出中值以后,仍按原来的方法进行图像处理
1.领域:matlab,中值滤波器和自适应滤波算法 2.内容:基于中值滤波器和自适应滤波的图像去噪处理matlab仿真 +代码操作视频 3.用处:用于中值滤波器和自适应滤波算法编程学习 4.指向人群:本硕博等教研学习使用 ...
对于circle-valued数据而言的一种快速中值滤波,例如信号或图像描述阶段或方向
实现了数字图像处理中图像的二值化算法,加噪声滤波以及中值滤波等算法。
关于matlab图象处理的直方图均衡化,理想平滑滤波器和中值滤波去除椒盐噪声的源代码,比较简洁,不妨
输入一个图像,对其进行边缘检测,灰度处理,自适应滤波,自适应边缘检测,中值滤波,加权中值滤波,均值滤波,加高斯噪声等处理
matlab图像处理 图像增强 中值滤波和均值滤波
一种基于自适应的新型中值滤波算法,很不错,希望对大家有所帮助。
数字图像处理 均值中值滤波 北航实验课件
中值滤波程序。调用matlab自带滤波应用。亲测可用。
信号处理常用程序,中值滤波,提供给信号处理初学者的matlab编程。
数字图像中值滤波器的研究.doc 数字图像中值滤波器的研究.doc