因爲JSP中提交的表單是字符串類型,action中須要得到Date類型。雖然struts2內置的類型轉換能夠把"yyyy-MM-dd"轉換成Date類型,然而,輸入其餘格式例如"MM/dd/yyyy"則不能轉換,故此時須要自定義局部類型轉換器將"MM/dd/yyyy"格式轉換成Date類型。java
因爲使用Date類型的action名爲StockRequestaction,裏面的startDate和endDate是Date類型,故新建StockRequestAction-converter.propertise(注意,這個文件必定要和StockRequestaction文件夾路徑相同,即放在action目錄下)ide
StockRequestAction-converter.propertisecode
startDate=com.dl.converter.DateConverter endDate=com.dl.converter.DateConverter
src下新建converter包,converter包中新建DateConverter.java,編寫轉換器orm
package com.dl.converter; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter; public class DateConverter extends DefaultTypeConverter{ @Override public Object convertValue(Map<String, Object> context, Object value, Class toType){ SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy"); try{ if(toType == Date.class){ String[] params = (String[])value; return dateFormat.parse(params[0]); }else if(toType == String.class){ Date date = (Date) value; return dateFormat.format(date); } }catch (ParseException e){} return null; } }