测试ActionForm类型的自动转换
*boolean:yes,1,on,true都会转换成true类型,而且忽略大小写,其让情况转换成false
*Date类型的转换:
*如果是java.sql.Date,页面日期的格式必须为yyy-MM-dd, ,才可以转换
*如果是java.util.Date,默认情况下struts无法转换
*自定义转换器的实现
*实现converter接口,实现convet方法
*将实现的converter注册,通常情况下采用servlet注册
*采用servlet注册需要注意标签的配置,<load-on-startup>10</load-on-startup>
index.jsp
<li>测试struts的类型转换器</li>
<form action="type_convert.do" method="post">
intValue:<input type="text" name="intValue"/><br>
doubleValue:<input type="text" name="doubleValue"/><br>
booleanValue:<input type="text" name="booleanValue"/><br>
java.sql.date:<input type="text" name="sqlDate"/><br>
java.util.date:<input type="text" name="utilDate"/><br>
<input type="submit" value="提交"/><br>
</form>
<方法一>
UtilDateConverterInitWithServlet .java
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import org.apache.commons.beanutils.ConvertUtils;
public class UtilDateConverterInitWithServlet extends HttpServlet {
@Override
public void init() throws ServletException {
System.out.println("UtilDateConverterInitWithServlet.init()");
ConvertUtils.register(new UtilDateConverter(), java.util.Date.class);
}
}
web.xml
<servlet>
<servlet-name>UtilDateConverterInitWithServlet</servlet-name>
<servlet-class>com.hugui.struts.UtilDateConverterInitWithServlet</servlet-class>
<load-on-startup>10</load-on-startup>
</servlet>
<方法二>
UtilDateConverterInitWithPlugin .java
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 UtilDateConverterInitWithPlugin implements PlugIn {
public void destroy() {
// TODO Auto-generated method stub
}
public void init(ActionServlet servlet, ModuleConfig config)
throws ServletException {
System.out.println("UtilDateConverterInitWithPlugin.init()");
ConvertUtils.register(new UtilDateConverter(), java.util.Date.class);
}
}
struts-config.xml
<plug-in className="com.hugui.struts.UtilDateConverterInitWithPlugin"></plug-in>