Struts1.2学习笔记(一)开发自己的类型转换器

最近学习了一些关于Struts1.2的知识,现做以总结。
Struts1.2中JSP表单向Action提交时有些表单数据不能直接转换成ActionForm中的对应的属性类型,而只能是String的初态,为了能实现本功能做如下改善。
1.新建WebProject->ValidateProject
2.创建相应的类文件
[b]DateConverter.class[/b] 本类中创建了一个实现Struts中的Converter中转换器接口的一个自定义的转换类。功能主要是将JSP页面中的表单中相应的时间字符串转换成对应的java.util.Date对象 
package com.validate.web.struts.beanutils.convorter;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.beanutils.Converter;

public class DateConverter implements Converter {

	private String dateFormat = null;
	private SimpleDateFormat format = null;
	
	public DateConverter(){
		format = new SimpleDateFormat("yyyy-MM-dd");
	}
	public DateConverter (String dateFormat){
		this.dateFormat = dateFormat;
		format = new SimpleDateFormat(dateFormat);
	}
	
	public Object convert(Class clazz, Object value) {
		System.out.println("myClazz Name is :" + clazz.getName());
		String src = null;
		Date dest = null;
		if(value instanceof String){
			try {
				src = (String)value;
				if(src.trim().equals(""))
				{
					System.out.println("This Form Field value is null ");
				}
				else 
				{
					dest = format.parse(src);
					System.out.println("DateConverter ................................");
					dest = format.parse(src);
				}
				
			} catch (ParseException e) {
				e.printStackTrace();
			}
			
		}
		
		
		return dest;
	}

}
 定义自己的ActionServlet用以在启动Struts的时候将转换器注册
package com.validate.web.struts.action.servlet;

import java.util.Date;

import javax.servlet.ServletException;

import org.apache.commons.beanutils.ConvertUtils;
import org.apache.struts.action.ActionServlet;

import com.validate.util.Gender;
import com.validate.web.struts.beanutils.convorter.DateConverter;
import com.validate.web.struts.beanutils.convorter.GenderConverter;

public class JlxxtActionServlet extends ActionServlet {
	
	@Override
	public void init() throws ServletException {
		System.out.println("Init JlxxtActionServlet..........................");
		ConvertUtils.register(new DateConverter("yyyy-MM-dd"), Date.class);
		super.init();
	}

}


你可能感兴趣的:(java,apache,jsp,Web,struts)