前台:
输入表单:
intValue: <input type="text" name="intValue" /> 1
doubleValue: <input type="text" name="doubleValue" /> 1.0
booleanValue: <input type="text" name="booleanValue" /> yes
java.sql.Date: <input type="text" name="sqlDate" /> 2010-03-31
输出:
intValue: ${typeCastForm.intValue} //typeCastForm为struts-config.xml 中ActionForm的name的值
doubleValue: ${typeCastForm.doubleValue}
booleanValue: ${typeCastForm.booleanValue}
sqlDate: ${typeCastForm.sqlDate}
后台:
ActionForm:
private int intValue;
private double doubleValue;
private boolean booleanValue;
private java.sql.Date sqlDate;
Action:
输出值为:
1
1.0
true
2010-03-31
注意:
java.util.Date 不能自动转换,会报异常,其次,如果使用java.sql.Date类型,那么日期格式必须用 横线"-"隔开,其他都不行
针对java.util.Date下的日期转换,我们要自定义一个类型转换器
后台自定义转换类:
public class UtilDateConverter implements Converter{
public Object convert(Class type,Object value){
if(value instanceof String){
SimpleDateForm adf = new SimpleDateFormat("yyyy-MM-dd");
Date d = sdf.parse((String)value);
return d;
}
}
}
servlet方式注册我们自定义的转换器:
package com.java_min.test
public class UtilDateConverterInitWithServlet extends HttpServlet{
public void init() throws ServletException {
ConvertUtils.register(new UtilDateConverter() , Date.class); //java.util.Date
}
}
web.xml文件中:
<servlet>
<servlet-name>UtilDateConverterInitWithServlet </servlet-name>
<servlet-class>com.java_min.test.UtilDateConverterInitWithServlet</servlet-class>
<load-on-startup>2</load-on-startup> //此类需要在tomcat启动时就初始化,所以需要配置此项,数字大于0即可
</servlet>
plugIn方式注册转换器
后台:
package com.java_min.test
public class UtilDateConverter implements org.apache.struts.action.PlugIn{
public void destroy(){}
public void init(ActionServlet servlet,ModuleConfig config){
ConvertUtils.register(new UtilDateConverter(),Date.class); //Date 为java.util地下的Date
}
}
web.xml中
<plug-in className="com.java_min.test.UtilDateConverter"></plug-in>