使用实体对象做为form属性简化开发(数据转型出错)

1.action

/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.aptech.coreflow.ui.action;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.actions.DispatchAction;

import com.aptech.coreflow.service.ICompanyService;
import com.aptech.coreflow.ui.form.CompanyForm;

/** 
 * MyEclipse Struts
 * Creation date: 08-03-2008
 * 
 * XDoclet definition:
 * @struts.action path="/company" name="companyForm" input="/form/company.jsp" parameter="method" scope="request" validate="true"
 */
public class CompanyAction extends DispatchAction {
	/*
	 * Generated Methods
	 */
	private  ICompanyService companyService;
	public void setCompanyService(ICompanyService companyService) {
		this.companyService = companyService;
	}
	/** 
	 * Method execute
	 * @param mapping
	 * @param form
	 * @param request
	 * @param response
	 * @return ActionForward
	 */
	public ActionForward save(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		CompanyForm companyForm = (CompanyForm) form;// TODO Auto-generated method stub
		
		companyService.save(companyForm.getCompany());
		return null;
	}
	public ActionForward delete(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		CompanyForm companyForm = (CompanyForm) form;// TODO Auto-generated method stub
		
		companyService.delete(companyForm.getCompany());
		return null;
	}
	public ActionForward findAll(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		CompanyForm companyForm = (CompanyForm) form;// TODO Auto-generated method stub
		
		companyService.findAll();
		return null;
	}
	
	public ActionForward attachDirty(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		CompanyForm companyForm = (CompanyForm) form;// TODO Auto-generated method stub
		
		companyService.attachDirty(companyForm.getCompany());
		return null;
	}
}


2.bean
package com.aptech.coreflow.pojo;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;

/**
 * Company entity.
 * 
 * @author MyEclipse Persistence Tools
 */

public class Company implements java.io.Serializable {

	// Fields

	private Long recordId;
	private String companyId;
	private String companyName;
	private String companyType;
	private String companyDesc;
	private String companyAddr;
	private String webAddr;
	private Date setupDate;
	private String corporation;
	private Double regcapital;
	private Integer employees;
	private String primaryProduct;
	private String primaryUser;
	private String linkMan;
	private String linkTelphone;
	private String linkFax;
	private String linkEmail;
	private Date registerDate;
	private String remark;
	private String inUserCode;
	private Date inDate;
	private Set userses = new HashSet(0);
	private Set expertInstances = new HashSet(0);
	private Set experimentjobs = new HashSet(0);

	// Constructors

	/** default constructor */
	public Company() {
	}

	/** minimal constructor */
	public Company(String companyId, String companyName, String companyType,
			Date setupDate, String corporation) {
		this.companyId = companyId;
		this.companyName = companyName;
		this.companyType = companyType;
		this.setupDate = setupDate;
		this.corporation = corporation;
	}

	/** full constructor */
	public Company(String companyId, String companyName, String companyType,
			String companyDesc, String companyAddr, String webAddr,
			Date setupDate, String corporation, Double regcapital,
			Integer employees, String primaryProduct, String primaryUser,
			String linkMan, String linkTelphone, String linkFax,
			String linkEmail, Date registerDate, String remark,
			String inUserCode, Date inDate, Set userses, Set expertInstances,
			Set experimentjobs) {
		this.companyId = companyId;
		this.companyName = companyName;
		this.companyType = companyType;
		this.companyDesc = companyDesc;
		this.companyAddr = companyAddr;
		this.webAddr = webAddr;
		this.setupDate = setupDate;
		this.corporation = corporation;
		this.regcapital = regcapital;
		this.employees = employees;
		this.primaryProduct = primaryProduct;
		this.primaryUser = primaryUser;
		this.linkMan = linkMan;
		this.linkTelphone = linkTelphone;
		this.linkFax = linkFax;
		this.linkEmail = linkEmail;
		this.registerDate = registerDate;
		this.remark = remark;
		this.inUserCode = inUserCode;
		this.inDate = inDate;
		this.userses = userses;
		this.expertInstances = expertInstances;
		this.experimentjobs = experimentjobs;
	}

	// Property accessors

	public Long getRecordId() {
		return this.recordId;
	}

	public void setRecordId(Long recordId) {
		this.recordId = recordId;
	}

	public String getCompanyId() {
		return this.companyId;
	}

	public void setCompanyId(String companyId) {
		this.companyId = companyId;
	}

	public String getCompanyName() {
		return this.companyName;
	}

	public void setCompanyName(String companyName) {
		this.companyName = companyName;
	}

	public String getCompanyType() {
		return this.companyType;
	}

	public void setCompanyType(String companyType) {
		this.companyType = companyType;
	}

	public String getCompanyDesc() {
		return this.companyDesc;
	}

	public void setCompanyDesc(String companyDesc) {
		this.companyDesc = companyDesc;
	}

	public String getCompanyAddr() {
		return this.companyAddr;
	}

	public void setCompanyAddr(String companyAddr) {
		this.companyAddr = companyAddr;
	}

	public String getWebAddr() {
		return this.webAddr;
	}

	public void setWebAddr(String webAddr) {
		this.webAddr = webAddr;
	}

	public Date getSetupDate() {
		return this.setupDate;
	}

	public void setSetupDate(Date setupDate) {
		this.setupDate = setupDate;
	}

	public String getCorporation() {
		return this.corporation;
	}

	public void setCorporation(String corporation) {
		this.corporation = corporation;
	}

	public Double getRegcapital() {
		return this.regcapital;
	}

	public void setRegcapital(Double regcapital) {
		this.regcapital = regcapital;
	}

	public Integer getEmployees() {
		return this.employees;
	}

	public void setEmployees(Integer employees) {
		this.employees = employees;
	}

	public String getPrimaryProduct() {
		return this.primaryProduct;
	}

	public void setPrimaryProduct(String primaryProduct) {
		this.primaryProduct = primaryProduct;
	}

	public String getPrimaryUser() {
		return this.primaryUser;
	}

	public void setPrimaryUser(String primaryUser) {
		this.primaryUser = primaryUser;
	}

	public String getLinkMan() {
		return this.linkMan;
	}

	public void setLinkMan(String linkMan) {
		this.linkMan = linkMan;
	}

	public String getLinkTelphone() {
		return this.linkTelphone;
	}

	public void setLinkTelphone(String linkTelphone) {
		this.linkTelphone = linkTelphone;
	}

	public String getLinkFax() {
		return this.linkFax;
	}

	public void setLinkFax(String linkFax) {
		this.linkFax = linkFax;
	}

	public String getLinkEmail() {
		return this.linkEmail;
	}

	public void setLinkEmail(String linkEmail) {
		this.linkEmail = linkEmail;
	}

	public Date getRegisterDate() {
		return this.registerDate;
	}

	public void setRegisterDate(Date registerDate) {
		this.registerDate = registerDate;
	}

	public String getRemark() {
		return this.remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getInUserCode() {
		return this.inUserCode;
	}

	public void setInUserCode(String inUserCode) {
		this.inUserCode = inUserCode;
	}

	public Date getInDate() {
		return this.inDate;
	}

	public void setInDate(Date inDate) {
		this.inDate = inDate;
	}

	public Set getUserses() {
		return this.userses;
	}

	public void setUserses(Set userses) {
		this.userses = userses;
	}

	public Set getExpertInstances() {
		return this.expertInstances;
	}

	public void setExpertInstances(Set expertInstances) {
		this.expertInstances = expertInstances;
	}

	public Set getExperimentjobs() {
		return this.experimentjobs;
	}

	public void setExperimentjobs(Set experimentjobs) {
		this.experimentjobs = experimentjobs;
	}

}

3. jsp
<%@ page language="java" pageEncoding="UTF-8"%>

<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html >
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
		<title>物流公司资料</title>
		<link rel="stylesheet" type="text/css" href="../css/transport.css" />
		<script type="text/javascript" src="../js/function.js"></script>
	</head>

	<body>
		<!--标题-->
		<div id="title">
			<div id="font">
				<div id="task">
					物流公司资料
				</div>
			</div>
		</div>
		<!--查询
<div id="query">
<form name="form1">
<div id="numbers">公司编号:<input type="text" name="t1" class="inputs"/></div>
<div id="numbers">公司名称:<input type="text" name="t2" class="inputs"/> <input type="button" value="查 询" class="button" /></div>
</form>
</div>-->
		<!--按钮-->
		<form name="companyForm" action="/coreflow_4/company.do?method=save">
		<div id="buttons">
			<div id="six">
				<div id="niu">
					<input type="button" value="返 回" class="button"
						onClick="javascript:window.location.href='Fmcf2050.html'"
						target="ab">
				</div>
				<div id="niu">
					<input type="submit" value="保 存" class="button">
				</div>
			</div>
		</div>
		<!--分页-->
		<div id="pagination">

		</div>
		<!--下面主体-->
		<div id="underside" style="height:expression(body.offsetHeight-80);">
			<!--空白间隔-->
			<!--表格-->
			<div id="mostly">
				<table width="200" border="1" id="table" class="tab">
					<tr>
						<td width="30%" class="td_right">
							编号:
						</td>
						<td width="70%" class="td_left">
							<input type="text" name="company.companyId">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							公司名称:
						</td>
						<td class="td_left">
							<input type="text" name="company.companyName">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							行业:
						</td>
						<td class="td_left">
							<select name="company.companyType">
								<option value="1">
									互联网
								</option>
								<option vaue="2">
									金融
								</option>
								<option vaue="3">
									物流
								</option>
							</select>
						</td>
					</tr>
					<tr>
						<td class="td_right">
							成立时间:
						</td>
						<td class="td_left">
							<input type="text" name="company.setupDate">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							法人代表:
						</td>
						<td class="td_left">
							<input type="text" name="company.corporation">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							注册资金:
						</td>
						<td class="td_left">
							<input type="text" name="company.regcapital">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							员工人数:
						</td>
						<td class="td_left">
							<input type="text" name="company.employees">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							主要产品:
						</td>
						<td class="td_left">
							<input type="text" name="company.primaryProduct">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							主要客户:
						</td>
						<td class="td_left">
							<input type="text" name="company.primaryUser">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							公司简介:
						</td>
						<td class="td_left">
							<textarea name="company.companyDesc" cols="1" rows="2" style="width:200px;"></textarea>
						</td>
					</tr>
					<tr>
						<td class="td_right">
							联系人:
						</td>
						<td class="td_left">
							<input type="text" name="company.linkMan">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							电话:
						</td>
						<td class="td_left">
							<input type="text" name="company.linkTelphone">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							传真:
						</td>
						<td class="td_left">
							<input type="text" name="company.linkFax">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							网址:
						</td>
						<td class="td_left">
							<input type="text" name="company.webAddr">
						</td>
					</tr>
					<tr>
						<td class="td_right">
							邮箱:
						</td>
						<td class="td_left">
							<input type="text" name="company.linkEmail">
						</td>
					</tr>

				</table>
			</div>

			<!--副表格-->


			<!--end-->
		</div></form>
	</body>
</html>


4.form
/*
 * Generated by MyEclipse Struts
 * Template path: templates/java/JavaClass.vtl
 */
package com.aptech.coreflow.ui.form;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;

import com.aptech.coreflow.pojo.Company;

/** 
 * MyEclipse Struts
 * Creation date: 08-03-2008
 * 
 * XDoclet definition:
 * @struts.form name="companyForm"
 */
public class CompanyForm extends ActionForm {
	/*
	 * Generated Methods
	 */
	private Company company=new Company();
	/** 
	 * Method validate
	 * @param mapping
	 * @param request
	 * @return ActionErrors
	 */
	public ActionErrors validate(ActionMapping mapping,
			HttpServletRequest request) {
		// TODO Auto-generated method stub
		return null;
	}

	/** 
	 * Method reset
	 * @param mapping
	 * @param request
	 */
	public void reset(ActionMapping mapping, HttpServletRequest request) {
		// TODO Auto-generated method stub
	}

	public Company getCompany() {
		return company;
	}

	public void setCompany(Company company) {
		this.company = company;
	}
}


5.错误日志

2008-8-6 18:10:19 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.IllegalArgumentException: Cannot invoke com.aptech.coreflow.pojo.Company.setSetupDate - argument type mismatch
at org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1778)
at org.apache.commons.beanutils.PropertyUtilsBean.setSimpleProperty(PropertyUtilsBean.java:1759)
at org.apache.commons.beanutils.PropertyUtilsBean.setNestedProperty(PropertyUtilsBean.java:1648)
at org.apache.commons.beanutils.PropertyUtilsBean.setProperty(PropertyUtilsBean.java:1677)
at org.apache.commons.beanutils.BeanUtilsBean.setProperty(BeanUtilsBean.java:1022)
at org.apache.commons.beanutils.BeanUtilsBean.populate(BeanUtilsBean.java:811)
at org.apache.commons.beanutils.BeanUtils.populate(BeanUtils.java:298)
at org.apache.struts.util.RequestUtils.populate(RequestUtils.java:493)
at org.apache.struts.action.RequestProcessor.processPopulate(RequestProcessor.java:796)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:203)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1192)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:412)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

你可能感兴趣的:(java,apache,struts,MyEclipse,物流)