ActionForm作为类型转换

 <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)

转载于:https://www.cnblogs.com/jinzhengquan/archive/2011/02/13/1953915.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage=""%> <%@ page import="com.dao.BookDAO"%> <%@ page import="com.dao.BookTypeDAO"%> <%@ page import="com.actionForm.BookForm"%> <%@ page import="com.actionForm.BookTypeForm"%> <%@ page import="com.dao.BookCaseDAO"%> <%@ page import="com.actionForm.BookCaseForm"%> <%@ page import="com.dao.PublishingDAO"%> <%@ page import="com.actionForm.PublishingForm"%> <%@ page import="java.util.*"%> <html> <% String str = null; BookTypeDAO bookTypeDAO = new BookTypeDAO(); Collection coll_type = (Collection) bookTypeDAO.query(str); if (coll_type == null || coll_type.isEmpty()) { out.println("<script>alert('请先录入图书类型信息!');history.back(-1);</script>"); } else { Iterator it_type = coll_type.iterator(); int typeID = 0; String typename = ""; BookCaseDAO bookcaseDAO = new BookCaseDAO(); String str1 = null; Collection coll_bookcase = (Collection) bookcaseDAO.query(str1); if (coll_bookcase == null || coll_bookcase.isEmpty()) { out.println("<script>alert('请先录入书架信息!');history.back(-1);</script>"); } else { Iterator it_bookcase = coll_bookcase.iterator(); int bookcaseID = 0; String bookcasename = ""; PublishingDAO pubDAO = new PublishingDAO(); String str2 = null; Collection coll_pub = (Collection) pubDAO.query(str2); if (coll_pub == null || coll_pub.isEmpty()) { out.println("<script>alert('请先录入出版社信息!');history.back(-1);</script>"); } else { Iterator it_pub = coll_pub.iterator(); String isbn = ""; String pubname = ""; %> <script language="jscript"> function check(form){ if(form.barcode.value==""){ alert("请输入条形码!");form.barcode.focus();return false; } if(form.bookName.value==""){ alert("请输入图书名称!");form.bookName.focus();return false; } if(form.price.value==""){ alert("请输入图书定价!");form.price.focus();return false; } } </script>
最新发布
05-19

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值