Struts表单数据与ActionForm的转换

首先写一个Converter的类
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.commons.beanutils.Converter;;

public class DataConvert implements Converter {

	public Object convert(Class arg0, Object value) {
		Date date = null;
		if(value instanceof String){
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			try {
				date = sdf.parse((String)value);
			} catch (ParseException e) {
				e.printStackTrace();
			}			
		}
		return date;		
	}

}

再写一个Servlet,并在服务器启动的时候就init()注册DataConvert

public class ConvertRegedit extends HttpServlet {

	private static final long serialVersionUID = 1L;

	public void init() throws ServletException {
		System.out.println("regedit");
		ConvertUtils.register((Converter)new DataConvert(),Date.class);
	}

}

这样表单里面的数据转过来就自动转成java.util.date

使用PlugIn注册
public class PlugInRegedit implements PlugIn {
	public void init(ActionServlet servlet, ModuleConfig config)
			throws ServletException {		
		ConvertUtils.register((Converter)new DataConvert(),Date.class);
	}

	public void destroy() {
		
	}

}

并在配置文件里面配置
<plug-in className="com.langhua.convert.PlugInRegedit"/>

服务器启动的时候就注册了

还有一种最简单的方法就是在set方面里面转换数据

你可能感兴趣的:(java,apache,xml,struts,servlet)