涞水网站建设,湖北网站建设免费,免费的大数据分析平台,中山建设公司网站提示#xff1a;文章写完后#xff0c;目录可以自动生成#xff0c;如何生成可参考右边的帮助文档 前言
Struts的ActionServlet接收用户在浏览器发送的请求#xff0c;并将用户输入的数据#xff0c;按照FormBean中定义的数据类型#xff0c;赋值给FormBean中每个变量文章写完后目录可以自动生成如何生成可参考右边的帮助文档 前言
Struts的ActionServlet接收用户在浏览器发送的请求并将用户输入的数据按照FormBean中定义的数据类型赋值给FormBean中每个变量赋值的过程是struts提供的基本数据(int,double,boolean,string,java.sql.Date等)类型转换器完成的有些数据的类型转换例如画面上输入的日期格式的字符串赋值给java.util.Date类型的变量这种情况struts就没有给我们提供转换器这就需要我们自定义转换器来处理下面我们就一起学习怎样编写自定义转换器以及将自定义转换器注册到struts的两种方式。 自定义转换器
首先我们自定义一个转换器 方法实现org.apache.commons.beanutils.Converter接口 重写convert方法来完成日期格式的字符串转换成java.util.Date类型。
自定义转换器java代码如下
package xxx.xxx.converter;import java.text.SimpleDateFormat;
import java.util.Date;import org.apache.commons.beanutils.Converter;public class UtilDateConverter implements Converter {Overridepublic Object convert(Class type, Object value) {if (value instanceof Date) {return value;}Date date null;if (value instanceof String) {try {date new SimpleDateFormat(yyyy-MM-dd).parse((String) value);} catch (Exception e) {e.printStackTrace();}}return date;}}注册到struts中
将自定义转换器注册到struts中有两种方法
通过Servlet注册 自定义Servlet类 方法继承javax.servlet.http.HttpServlet类重写init方法通过ConvertUtils.register方法将我们自定义转换器注册到ConvertUtils类。 struts为我们提供的所有数据类型转换器都注册在ConvertUtils类里
自定义Servlet代码如下示例
import java.util.Date;import javax.servlet.http.HttpServlet;import org.apache.commons.beanutils.ConvertUtils;import xxx.xxx.converter.UtilDateConverter;public class UtilDateConverterServlet extends HttpServlet {Overridepublic void init() {ConvertUtils.register(new UtilDateConverter(), Date.class);}}再将自定义的Sevlet类通过web.xml交给struts管理 web.xml文件代码如下 servletservlet-nameUtilDateConverterServlet/servlet-nameservlet-classxxx.xxx.servlet.UtilDateConverterServlet/servlet-classload-on-startup10/load-on-startup/servlet通过PlugIn注册 自定义PlugIn 类 方法实现org.apache.struts.action.PlugIn接口重写init方法同样通过ConvertUtils.register方法将我们自定义转换器注册到ConvertUtils类
自定义PlugIn代码如下示例
package xxx.xxx.plugin;import java.util.Date;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;import xxx.xxx.converter.UtilDateConverter;public class UtilDateConverterPlugIn implements PlugIn {Overridepublic void destroy() {}public void init(ActionServlet servlet, ModuleConfig config) throws ServletException {ConvertUtils.register(new UtilDateConverter(), Date.class);}
}再将自定义的PlugIn类通过struts-config.xml的plug-in标签交给struts管理 struts-config.xml文件代码如下
/struts-config中间略plug-in classNamexxx.xxx.plugin.UtilDateConverterPlugIn/中间略
/struts-config到这里我们就完成了日期格式的字符串类型转换成java.util.Date类型的示例 我们启动tomcat运行一下看看效果 java.util.Date的输入及显示就是我们自定义转换器来完成的
运行效果 总结
struts1的自定义转换器讲解到这里欢迎留言交流下篇见。