<li>测试ActionForm类型转换器</li><br>
    <form action="typeconvert.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="提交">
    </form>
ActionForm:
package com.bjsxt.struts;
import org.apache.struts.action.ActionForm;
/**
 * struts中的类型转换测试
 * @author Administrator
 *
 */
public class TypeConvertActionForm extends ActionForm {
 private int intValue;
 
 private double doubleValue;
 
 private boolean booleanValue;
 
 private java.sql.Date sqlDate;
 
 private java.util.Date utilDate;
 public int getIntValue() {
  return intValue;
 }
 public void setIntValue(int intValue) {
  this.intValue = intValue;
 }
 public double getDoubleValue() {
  return doubleValue;
 }
 public void setDoubleValue(double doubleValue) {
  this.doubleValue = doubleValue;
 }
 public boolean isBooleanValue() {
  return booleanValue;
 }
 public void setBooleanValue(boolean booleanValue) {
  this.booleanValue = booleanValue;
 }
 public java.sql.Date getSqlDate() {
  return sqlDate;
 }
 public void setSqlDate(java.sql.Date sqlDate) {
  this.sqlDate = sqlDate;
 }
 public java.util.Date getUtilDate() {
  return utilDate;
 }
 public void setUtilDate(java.util.Date utilDate) {
  this.utilDate = utilDate;
 }
}
Action:
package com.bjsxt.struts;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
/**
 * struts中的类型转换测试
 * @author Administrator
 *
 */
public class TypeConvertTestAction extends Action {
 @Override
 public ActionForward execute(ActionMapping mapping, ActionForm form,
   HttpServletRequest request, HttpServletResponse response)
   throws Exception {
  return mapping.findForward("success");
 }
}
配置信息:
  <action path="/typeconvert"
    type="com.bjsxt.struts.TypeConvertTestAction"
    name="typeconvertForm"
    scope="request"
  >
   <forward name="success" path="/typeconvert_success.jsp"/> 
  </action>
jsp页面:
<body>
 intValue:${typeconvertForm.intValue }<br>
 doubleValue:${typeconvertForm.doubleValue }<br>
 booleanValue:${typeconvertForm.booleanValue }<br>
 java.sql.dateValue:${typeconvertForm.sqlDate }<br>
 java.util.utilValue:${typeconvertForm.utilDate }<br>
</body>
ActionForm在收集java.util.Date的时候不能转换,所以如果要转换到java.util.Date那么就要实现一个转换器,该转换器实现Convert类,实现convert方法,然后将转换器注册
package com.bjsxt.struts;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.apache.commons.beanutils.Converter;
/**
 * java.util.Date类型转换器
 * @author Administrator
 *
 */
public class UtilDateConverter implements Converter {
 public Object convert(Class type, Object value) {
  System.out.println("UtilDateConverter.value=" + value);
  if (value == null) {
   return value;
  }
  if (value instanceof Date) {
   return value;
  }
  Date d = null;
  //将字符串转换为Date
  if (value instanceof String) {
   SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
   try {
    d = sdf.parse((String)value);
   } catch (ParseException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
  return d;
 }
}
注册为插件:
package com.bjsxt.struts;
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;
public class UtilDateConverterInitWithPlugin implements PlugIn {
 public void destroy() {
 }
 public void init(ActionServlet servlet, ModuleConfig config)
   throws ServletException {
  System.out.println("UtilDateConverterInitWithPlugin.init()");
  ConvertUtils.register(new UtilDateConverter(), Date.class);
 }
}
在struts-config.xml中配置:
<plug-in className="com.bjsxt.struts.UtilDateConverterInitWithPlugin"/>
ActionForm是一个数据传输对象(DTO),vo是值对象(VO=DTO)
 
                    
                     
                    
                 
                    
                 
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号