步骤:
--实现Converter接口
--重写convert方法
--注册转换器(servlet方式或plugin方式)
----servlet方式
------web.xml文件配置servlet
----plugin方式
------struts-config.xml中配置plugin
-------------------------------------------------------------------------------------------
实例如下:
为java.util.Date自定义一个转换器
实现Converter接口的TestUtilDateConverter.java
package com.yulin.struts;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.beanutils.Converter;
public class TestUtilDateConverter implements Converter {
//重写convert方法
public Object convert(Class type, Object value) {
if(value == null){
return new Date();
}
if(value instanceof Date){
return value;
}
if(value instanceof String){
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
return sdf.parse((String)value);
} catch (ParseException e) {
e.printStackTrace();
}
}
return null;
}
}
注册转换器(servlet方式或plugin方式)
以servlet方式注册转换器
package com.yulin.struts;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.apache.commons.beanutils.ConvertUtils;
public class TestUtilDateConverterServlet extends HttpServlet {
@Override
public void init() throws ServletException {
//注册转换器
ConvertUtils.register(new TestUtilDateConverter(), java.util.Date.class);
}
}
----servlet方式--web.xml文件配置servlet
<servlet>
<servlet-name>TestUtilDateConverterServlet</servlet-name>
<servlet-class>com.yulin.struts.TestUtilDateConverterServlet</servlet-class>
<load-on-startup>3</load-on-startup>
</servlet>
以plugin方式注册转换器
package com.yulin.struts;
import javax.servlet.ServletException;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.action.PlugIn;
import org.apache.struts.config.ModuleConfig;
public class TestUtilDateConverterPlugin implements PlugIn {
public void destroy() {
}
public void init(ActionServlet arg0, ModuleConfig arg1)
throws ServletException {
//注册转换器
ConvertUtils.register(new TestUtilDateConverter(), java.util.Date.class);
}
}
----plugin方式--struts-config.xml中配置plugin
<plug-in className="com.yulin.struts.TestUtilDateConverterPlugin"/>