论坛首页 入门技术论坛

Validator服务器端时间验证和时间转换问题

浏览 1403 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-08-08  
我使用validator进行时间验证,格式为yyyy-MM-dd,datePatternStrict和mask都用过了,总是不成功,启用了validator的客户端验证,有时候是客户端能够通过,服务器端不能通过。

基本配置应该没问题,jar包,validation.xml和validator-rules.xml都是从struts1.2.8中struts-blank包里拷过来的,应该不会是版本问题,页面中的Email和所有属性的required可以验证,就是date和double型不能验证成功。

另:之前我在struts-config.xml中注册了一个时间转换插件,会不会和这个有关系?
相关代码如下:

DateConvert.java
public class DateConvert
	implements Converter
{

	static SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");

	public DateConvert()
	{
	}

	public Object convert(Class type, Object value)
	{
		if (value == null)
			return null;
		if (((String)value).trim().length() == 0)
			return null;
		if (!(value instanceof String))
			break MISSING_BLOCK_LABEL_50;
		return df.parse((String)value);
		Exception ex;
		ex;
		throw new ConversionException("输入的日期类型非法");
		throw new ConversionException("输入的不是字符类型");
	}

}


DateConvertPlugIn.java
 public class DateConvertPlugIn
	implements PlugIn
{

	public DateConvertPlugIn()
	{
	}

	public void destroy()
	{
		ConvertUtils.deregister();
	}

	public void init(ActionServlet arg0, ModuleConfig arg1)
		throws ServletException
	{
		ConvertUtils.register(new DateConvert(), java/util/Date);
	}
}


ConverterPlugIn.java
public class ConverterPlugIn
	implements PlugIn
{

	public ConverterPlugIn()
	{
	}

	public void init(ActionServlet servlet, ModuleConfig config)
		throws ServletException
	{
		ConvertUtils.register(new SqlDateConverter(null), java/sql/Date);
		ConvertUtils.register(new SqlDateConverter(null), java/sql/Timestamp);
	}

	public void destroy()
	{
		ConvertUtils.deregister();
	}
}


问题一:validator的验证时间是在什么时候,和这个时间转换类有冲突吗?
问题二:validator的验证和版本有关系吗?validator-rules.xml中提供的double和date等类型都有具体验证方法实现吗?
问题三:时间从页面到java再到数据库的转换过程是怎样的?我的理解是在页面是字符串,到java的date类型,再到数据库的date或datetime类型,但具体转换过程不清楚
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics