这是第一个类,与表中的信息相对应(当然如果只是简单的文件上传可以不用这样麻烦,之所以这样作是因为传到数据库里容易管理)
package tester.business.maitain;
public class Trainplan {
private int p_id;
private String p_title;
private int post_index;
private String issue_time;
private String issuer;
private String p_content;
private String p_accessory;
public int getP_id() {
return p_id;
}
public void setP_id(int p_id) {
this.p_id = p_id;
}
这是第二个类actionform,
package tester.business.maitain;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.apache.struts.upload.*;
public class MaintainForm
extends ActionForm {
/** private String p_title;
private int post_index;
private String issue_time;
private String issue;
private String p_content;
private String p_accessory;
private int p_id;
private java.util.ArrayList post_indexOpts;
*/
private Trainplan trainPlan = new Trainplan();
private org.apache.struts.upload.FormFile theFile1;
private org.apache.struts.upload.FormFile theFile2;
private org.apache.struts.upload.FormFile theFile3;
public String getP_title() {
return trainPlan.getP_title();
}
public void setP_title(String p_title) {
trainPlan.setP_title(p_title);
}
public void setTrainPlan(Trainplan trainP) {
this.trainPlan = trainP;
}
public Trainplan getTrainPlan() {
return this.trainPlan;
}
public void setTheFile1(org.apache.struts.upload.FormFile theFile1) {
this.theFile1 = theFile1;
}
public org.apache.struts.upload.FormFile getTheFile2() {
return theFile2;
}
public void setTheFile2(org.apache.struts.upload.FormFile theFile2) {
this.theFile2 = theFile2;
}
public org.apache.struts.upload.FormFile getTheFile3() {
return theFile3;
}
public void setTheFile3(org.apache.struts.upload.FormFile theFile3) {
this.theFile3 = theFile3;
}
public org.apache.struts.upload.FormFile getTheFile1() {
return theFile1;
}
public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
/**@todo: finish this method, this is just the skeleton.*/
return null;
}
public void reset(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
}
}
这是第二个类action
package tester.business.maitain;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.apache.struts.upload.*;
public class MaintainForm
extends ActionForm {
/** private String p_title;
private int post_index;
private String issue_time;
private String issue;
private String p_content;
private String p_accessory;
private int p_id;
private java.util.ArrayList post_indexOpts;
*/
private Trainplan trainPlan = new Trainplan();
private org.apache.struts.upload.FormFile theFile1;
private org.apache.struts.upload.FormFile theFile2;
private org.apache.struts.upload.FormFile theFile3;
public String getP_title() {
return trainPlan.getP_title();
}
public void setP_title(String p_title) {
trainPlan.setP_title(p_title);
}
public void setTrainPlan(Trainplan trainP) {
this.trainPlan = trainP;
}
public Trainplan getTrainPlan() {
return this.trainPlan;
}
public void setTheFile1(org.apache.struts.upload.FormFile theFile1) {
this.theFile1 = theFile1;
}
public org.apache.struts.upload.FormFile getTheFile2() {
return theFile2;
}
public void setTheFile2(org.apache.struts.upload.FormFile theFile2) {
this.theFile2 = theFile2;
}
public org.apache.struts.upload.FormFile getTheFile3() {
return theFile3;
}
public void setTheFile3(org.apache.struts.upload.FormFile theFile3) {
this.theFile3 = theFile3;
}
public org.apache.struts.upload.FormFile getTheFile1() {
return theFile1;
}
public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
/**@todo: finish this method, this is just the skeleton.*/
return null;
}
public void reset(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
}
}
与actionform相对应的jsp页面
taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%request.setCharacterEncoding("gb2312");%>
<html:html locale="true">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../css/main.css" rel="stylesheet" type="text/css">
<title>Add TrainPlan</title>
</head>
<body>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="tabletoolbar">
<tr>
<td class="tabletitletext"><div align="center" class="tabletitletext">Add TrainPlan</div></td>
</tr>
</table>
<!--DWLayoutTable-->
<html:form action="/maintainAction.do" method="post" enctype="multipart/form-data">
<table width="600" border="0" align="center" cellpadding="7" cellspacing="0" class="InputFrameMain">
<tr>
<td width="3%" nowrap> </td>
<td width="11%" nowrap><strong>Title</strong></td>
<td width="22%" nowrap><html:text maxlength="50" property="trainPlan.p_title" size="50"/></td>
<td width="11%" nowrap><div align="center"><strong>Issue Time</strong></div></td>
<td width="22%" nowrap><html:text property="trainPlan.issue_time" size="10"/>
<html:button value="Date" property="Submit"/></td>
<td width="10%" nowrap><div align="center"></div></td>
</tr>
<tr>
<td nowrap> </td>
<td nowrap><strong>Post Index</strong></td>
<td nowrap>
</td>
<td nowrap><div align="center"><strong>Issuer</strong></div></td>
<td nowrap><html:text maxlength="10" property="trainPlan.issuer" size="10"/></td>
<td height="30" colspan="8" nowrap><div align="center"></div> <div align="center">
<tr>
</tr>
</div></td>
</tr>
</table>
<br>
<table width="595" border="0" align="center" cellpadding="7" cellspacing="0" class="InputFrameMain">
Train Plan Content
<tr>
<td width="10%" nowrap><strong>TrainPlan Content</strong>:<span class="InputAreaCell"><strong><br>
</strong></span></td>
<td width="90%"><html:textarea cols="80" rows="5" property="trainPlan.p_content"></html:textarea></td>
</tr>
<tr>
<td height="30" colspan="8" nowrap><div align="center"></div> <div align="center">
</div></td>
</tr>
</table>
<br>
<table width="610" border="0" align="center" cellpadding="7" cellspacing="0" class="InputFrameMain">
Accessory
<tr>
<td width="595"><span class="InputAreaCell"><strong>Accessory1
<html:file maxlength="60" property="theFile1" size="60"/>
<br>Accessory2
<html:file maxlength="60" property="theFile2" size="60"/>
<br>Accessory3
<html:file maxlength="60" property="theFile3" size="60"/>
<br>
</strong></span></td>
</tr>
<tr>
<td height="30" colspan="8" nowrap><div align="center"></div> <div align="center">
<html:submit styleClass="button" value="提交" property="Submit" οnclick="return RgTest()"/>
</div></td>
</tr>
</table>
</html:form>
</body>
</html:html>
public String getP_title() {
return p_title;
}
public void setP_title(String p_title) {
this.p_title = p_title;
}
public int getPost_index() {
return post_index;
}
public void setPost_index(int post_index) {
this.post_index = post_index;
}
public String getIssue_time() {
return issue_time;
}
public void setIssue_time(String issue_time) {
this.issue_time = issue_time;
}
public String getIssuer() {
return issuer;
}
public void setIssuer(String issue) {
this.issuer = issue;
}
public String getP_content() {
return p_content;
}
public void setP_content(String p_content) {
this.p_content = p_content;
}
public String getP_accessory() {
return p_accessory;
}
public void setP_accessory(String p_accessory) {
this.p_accessory = p_accessory;
}
}
这是action页面,
package tester.business.maitain;
import tclcc.tester.util.Selector;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.util.*;
import org.apache.struts.upload.FormFile;
import java.io.*;
public class MaintainAction
extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
/**@todo: complete the business logic here, this is just a skeleton.*/
MaintainForm maintainForm = (MaintainForm) actionForm;
TrainPlanDAO trainPDAO = new TrainPlanDAO();
Trainplan trainPlan = new Trainplan();
trainPlan = maintainForm.getTrainPlan();
FormFile theFile = null;
theFile = maintainForm.getTheFile1();
String p_accessory;
p_accessory = theFile.getFileName();
try {
InputStream stream = theFile.getInputStream(); //把文件读入
String filePath = httpServletRequest.getRealPath("/"); //取当前系统路径
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream bos = new FileOutputStream(filePath + "//sub" + "/" +
theFile.getFileName()); //建立一个上传文件的输出流
//System.out.println(filePath+"/"+file.getFileName());
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead); //将文件写入服务器
}
bos.close();
stream.close();
} catch (Exception e) {
System.err.print(e);
}
try {
trainPlan.setP_accessory(p_accessory);
trainPDAO.addTrainPlan(trainPlan);//调用数据库插入方法
System.out.println("success");
} catch (Exception ex) {
}
httpServletRequest.setAttribute("trainPlain", trainPlan);
return (actionMapping.findForward("trainplanCreated"));
}
}
package tester.business.maitain;
import tclcc.tester.business.maitain.Trainplan;
import tclcc.tester.util.DBConn;
import java.sql.*;
import java.util.*;
public class TrainPlanDAO {
private DBConn dbconn = null;
private Connection conn = null;
private static final String ADD_TRAINPLAN=
"INSERT INTO KS_TRAINPLAN (p_id,p_title,issue_time,issuer,p_content,p_accessory) VALUES (lpad(SEQ_P_ID.nextVal,10,´0´),?,?,to_date(?,´yyyy-mm-dd´),?,?,?)";
private final static String UPDATE_TRAINPLAN=
"UPDATE KS_TRAINPLAN set p_id=?,p_title=?,post_index=?,issue_time=to_date(?,´yyyy-mm-dd´),issuer=?,p_content=?,p_accessory=? where p_id=?";
/**
* get a connection from a DB pool
* @return Connection
*/
public TrainPlanDAO() {
try {
dbconn = new DBConn();
conn = dbconn.getConnection();
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* add a row into DB
* @param examinee Examinee
* @throws SQLException
*/
public void addTrainPlan(Trainplan trainPlan) throws SQLException {
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(ADD_TRAINPLAN);
pstmt.setString(1, trainPlan.getP_title());
pstmt.setString(2, trainPlan.getIssue_time());
pstmt.setString(3, trainPlan.getIssuer());
pstmt.setString(4, trainPlan.getP_content());
pstmt.setString(5, trainPlan.getP_accessory());
pstmt.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
pstmt.close();
//conn.close();
} catch (SQLException ex1) {
}
}
}
/**
* remove a row from DB
* @param trainPlan TrainPlan
* @throws SQLException
*/
public void removeTrainPlan(Trainplan trainPlan) throws SQLException {
this.removeTrainPlan(trainPlan.getP_id());
}
/**
* remove a row from DB
* @param p_id int
* @throws SQLException
*/
public void removeTrainPlan(int p_id) throws SQLException {
Statement stmt = null;
try {
stmt = conn.createStatement();
stmt.execute("DELETE FROM ks_trainplan WHERE p_id=" + p_id);
} catch (SQLException ex) {
ex.printStackTrace();
throw new SQLException("SQLExction on : TrainPlanDAO.removeExaminee()");
} finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
/**
* update a row
* @param examinee Examinee
* @throws SQLException
*/
public void updateTrainPlan(Trainplan trainPlan) throws SQLException {
PreparedStatement pstmt = null;
try {
// UPDATE_TRAINPLAN = UPDATE_TRAINPLAN + "where p_id =" + trainPlan.getP_id(); //the condition need modification
pstmt = conn.prepareStatement(UPDATE_TRAINPLAN);
pstmt.setInt(1, trainPlan.getP_id());
pstmt.setString(2, trainPlan.getP_title());
pstmt.setInt(3, trainPlan.getPost_index());
pstmt.setString(4, trainPlan.getIssue_time());
pstmt.setString(5, trainPlan.getIssuer());
pstmt.setString(6, trainPlan.getP_content());
pstmt.setString(7, trainPlan.getP_accessory());
pstmt.setInt(8,trainPlan.getP_id());
pstmt.executeUpdate();
} /*catch (SQLException ex) {
ex.getStackTrace();
throw new SQLException("SQLExction on : TrainPlanDAO.updateExaminee()");
} */
catch(SQLException sqle){
do
{
System.err.println("Exception occoured:/nMessage:"+sqle.getMessage());
System.err.println("SQL state:"+sqle.getSQLState());
System.err.println("Vendor code:"+sqle.getErrorCode()+"/n---------------");
} while((sqle=sqle.getNextException())!=null);
}finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
/**
* get all record from DB
* @throws SQLException
* @return Collection
*/
public Collection getAll() throws SQLException {
Statement stmt = null;
ResultSet rs = null;
Trainplan trainPlan = null;
Collection list = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM ks_trainplan");
list = new ArrayList();
while (rs.next()) {
trainPlan = new Trainplan();
trainPlan.setP_id(rs.getInt("P_ID"));
trainPlan.setP_title(rs.getString("P_TITLE"));
trainPlan.setPost_index(rs.getInt("POST_INDEX"));
trainPlan.setIssue_time(rs.getString("ISSUE_TIME"));
trainPlan.setIssuer(rs.getString("ISSUER"));
trainPlan.setP_content(rs.getString("P_CONTENT"));
trainPlan.setP_accessory(rs.getString("P_ACCESSORY"));
list.add(trainPlan);
}
} catch (SQLException ex) {
} finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
return list;
}
}
public static String toString(Trainplan trainPlan){
return trainPlan.getP_title();
}
/**
* for test
* @param args String[]
*/
}
package tester.business.maitain;
import tclcc.tester.business.maitain.Trainplan;
import tclcc.tester.util.DBConn;
import java.sql.*;
import java.util.*;
public class TrainPlanDAO {
private DBConn dbconn = null;
private Connection conn = null;
private static final String ADD_TRAINPLAN=
"INSERT INTO KS_TRAINPLAN (p_id,p_title,issue_time,issuer,p_content,p_accessory) VALUES (lpad(SEQ_P_ID.nextVal,10,´0´),?,?,to_date(?,´yyyy-mm-dd´),?,?,?)";
private final static String UPDATE_TRAINPLAN=
"UPDATE KS_TRAINPLAN set p_id=?,p_title=?,post_index=?,issue_time=to_date(?,´yyyy-mm-dd´),issuer=?,p_content=?,p_accessory=? where p_id=?";
/**
* get a connection from a DB pool
* @return Connection
*/
public TrainPlanDAO() {
try {
dbconn = new DBConn();
conn = dbconn.getConnection();
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* add a row into DB
* @param examinee Examinee
* @throws SQLException
*/
public void addTrainPlan(Trainplan trainPlan) throws SQLException {
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(ADD_TRAINPLAN);
pstmt.setString(1, trainPlan.getP_title());
pstmt.setString(2, trainPlan.getIssue_time());
pstmt.setString(3, trainPlan.getIssuer());
pstmt.setString(4, trainPlan.getP_content());
pstmt.setString(5, trainPlan.getP_accessory());
pstmt.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
pstmt.close();
//conn.close();
} catch (SQLException ex1) {
}
}
}
/**
* remove a row from DB
* @param trainPlan TrainPlan
* @throws SQLException
*/
public void removeTrainPlan(Trainplan trainPlan) throws SQLException {
this.removeTrainPlan(trainPlan.getP_id());
}
/**
* remove a row from DB
* @param p_id int
* @throws SQLException
*/
public void removeTrainPlan(int p_id) throws SQLException {
Statement stmt = null;
try {
stmt = conn.createStatement();
stmt.execute("DELETE FROM ks_trainplan WHERE p_id=" + p_id);
} catch (SQLException ex) {
ex.printStackTrace();
throw new SQLException("SQLExction on : TrainPlanDAO.removeExaminee()");
} finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
/**
* update a row
* @param examinee Examinee
* @throws SQLException
*/
public void updateTrainPlan(Trainplan trainPlan) throws SQLException {
PreparedStatement pstmt = null;
try {
// UPDATE_TRAINPLAN = UPDATE_TRAINPLAN + "where p_id =" + trainPlan.getP_id(); //the condition need modification
pstmt = conn.prepareStatement(UPDATE_TRAINPLAN);
pstmt.setInt(1, trainPlan.getP_id());
pstmt.setString(2, trainPlan.getP_title());
pstmt.setInt(3, trainPlan.getPost_index());
pstmt.setString(4, trainPlan.getIssue_time());
pstmt.setString(5, trainPlan.getIssuer());
pstmt.setString(6, trainPlan.getP_content());
pstmt.setString(7, trainPlan.getP_accessory());
pstmt.setInt(8,trainPlan.getP_id());
pstmt.executeUpdate();
} /*catch (SQLException ex) {
ex.getStackTrace();
throw new SQLException("SQLExction on : TrainPlanDAO.updateExaminee()");
} */
catch(SQLException sqle){
do
{
System.err.println("Exception occoured:/nMessage:"+sqle.getMessage());
System.err.println("SQL state:"+sqle.getSQLState());
System.err.println("Vendor code:"+sqle.getErrorCode()+"/n---------------");
} while((sqle=sqle.getNextException())!=null);
}finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
/**
* get all record from DB
* @throws SQLException
* @return Collection
*/
public Collection getAll() throws SQLException {
Statement stmt = null;
ResultSet rs = null;
Trainplan trainPlan = null;
Collection list = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM ks_trainplan");
list = new ArrayList();
while (rs.next()) {
trainPlan = new Trainplan();
trainPlan.setP_id(rs.getInt("P_ID"));
trainPlan.setP_title(rs.getString("P_TITLE"));
trainPlan.setPost_index(rs.getInt("POST_INDEX"));
trainPlan.setIssue_time(rs.getString("ISSUE_TIME"));
trainPlan.setIssuer(rs.getString("ISSUER"));
trainPlan.setP_content(rs.getString("P_CONTENT"));
trainPlan.setP_accessory(rs.getString("P_ACCESSORY"));
list.add(trainPlan);
}
} catch (SQLException ex) {
} finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
return list;
}
}
public static String toString(Trainplan trainPlan){
return trainPlan.getP_title();
}
/**
* for test
* @param args String[]
*/
}
这是view页面viewtrainplan.jsp(上一张jsp名为planManage.jsp)
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
<title>
veiwtrainplan
</title>
</head>
<%@ page import="tclcc.tester.business.maitain.Trainplan"%>
<body bgcolor="#ffffff">
<%
Trainplan trainP = (Trainplan)request.getAttribute("trainPlain");
%>
已经创建了计划
<%=trainP.getP_title()%>
<br>
<%=trainP.getP_accessory()%>
</body>
</html>
最后看看struts-config页面的内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="examineeActionForm" type="tclcc.tester.business.ExamineeActionForm" />
<form-bean name="maintainForm" type="tclcc.tester.business.maitain.MaintainForm" />
<form-bean name="addPlanForm" type="tclcc.tester.business.maitain.AddPlanForm" />
</form-beans>
<global-forwards>
<forward name="veiwtrainplan" path="/veiwtrainplan.jsp" />
</global-forwards>
<action-mappings>
<action name="examineeActionForm" path="/admin/showMain" type="tclcc.tester.business.ShowMain">
<forward name="success" path="/admin/examinee/main.jsp" />
</action>
<action input="/admin/examinee/addExaminee.jsp" name="examineeActionForm" path="/admin/saveAddExaminee" type="tclcc.tester.business.SaveAddExamineeAction">
<forward name="success" path="/admin/showMain.do" />
</action>
<action name="examineeActionForm" path="/admin/addExaminee" type="tclcc.tester.business.AddExamineeAction">
<forward name="success" path="/admin/examinee/addExaminee.jsp" />
</action>
<action input="/admin/maintain/planManage.jsp" name="maintainForm" path="/maintainAction" scope="request" type="tclcc.tester.business.maitain.MaintainAction" validate="true">
<forward name="trainplanCreated" path="/veiwtrainplan.jsp" />
</action>
<action name="maintainForm" path="/initAction" scope="request" type="tclcc.tester.business.maitain.InitAction" validate="true">
<forward name="maintain" path="/admin/maintain/planManage.jsp" />
</action>
</action-mappings>
</struts-config>
祝你好运!
package tester.business.maitain;
public class Trainplan {
private int p_id;
private String p_title;
private int post_index;
private String issue_time;
private String issuer;
private String p_content;
private String p_accessory;
public int getP_id() {
return p_id;
}
public void setP_id(int p_id) {
this.p_id = p_id;
}
这是第二个类actionform,
package tester.business.maitain;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.apache.struts.upload.*;
public class MaintainForm
extends ActionForm {
/** private String p_title;
private int post_index;
private String issue_time;
private String issue;
private String p_content;
private String p_accessory;
private int p_id;
private java.util.ArrayList post_indexOpts;
*/
private Trainplan trainPlan = new Trainplan();
private org.apache.struts.upload.FormFile theFile1;
private org.apache.struts.upload.FormFile theFile2;
private org.apache.struts.upload.FormFile theFile3;
public String getP_title() {
return trainPlan.getP_title();
}
public void setP_title(String p_title) {
trainPlan.setP_title(p_title);
}
public void setTrainPlan(Trainplan trainP) {
this.trainPlan = trainP;
}
public Trainplan getTrainPlan() {
return this.trainPlan;
}
public void setTheFile1(org.apache.struts.upload.FormFile theFile1) {
this.theFile1 = theFile1;
}
public org.apache.struts.upload.FormFile getTheFile2() {
return theFile2;
}
public void setTheFile2(org.apache.struts.upload.FormFile theFile2) {
this.theFile2 = theFile2;
}
public org.apache.struts.upload.FormFile getTheFile3() {
return theFile3;
}
public void setTheFile3(org.apache.struts.upload.FormFile theFile3) {
this.theFile3 = theFile3;
}
public org.apache.struts.upload.FormFile getTheFile1() {
return theFile1;
}
public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
/**@todo: finish this method, this is just the skeleton.*/
return null;
}
public void reset(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
}
}
这是第二个类action
package tester.business.maitain;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import org.apache.struts.upload.*;
public class MaintainForm
extends ActionForm {
/** private String p_title;
private int post_index;
private String issue_time;
private String issue;
private String p_content;
private String p_accessory;
private int p_id;
private java.util.ArrayList post_indexOpts;
*/
private Trainplan trainPlan = new Trainplan();
private org.apache.struts.upload.FormFile theFile1;
private org.apache.struts.upload.FormFile theFile2;
private org.apache.struts.upload.FormFile theFile3;
public String getP_title() {
return trainPlan.getP_title();
}
public void setP_title(String p_title) {
trainPlan.setP_title(p_title);
}
public void setTrainPlan(Trainplan trainP) {
this.trainPlan = trainP;
}
public Trainplan getTrainPlan() {
return this.trainPlan;
}
public void setTheFile1(org.apache.struts.upload.FormFile theFile1) {
this.theFile1 = theFile1;
}
public org.apache.struts.upload.FormFile getTheFile2() {
return theFile2;
}
public void setTheFile2(org.apache.struts.upload.FormFile theFile2) {
this.theFile2 = theFile2;
}
public org.apache.struts.upload.FormFile getTheFile3() {
return theFile3;
}
public void setTheFile3(org.apache.struts.upload.FormFile theFile3) {
this.theFile3 = theFile3;
}
public org.apache.struts.upload.FormFile getTheFile1() {
return theFile1;
}
public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
/**@todo: finish this method, this is just the skeleton.*/
return null;
}
public void reset(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) {
}
}
与actionform相对应的jsp页面
taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<%@ page contentType="text/html; charset=UTF-8" %>
<%request.setCharacterEncoding("gb2312");%>
<html:html locale="true">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link href="../css/main.css" rel="stylesheet" type="text/css">
<title>Add TrainPlan</title>
</head>
<body>
<table width="600" border="0" align="center" cellpadding="0" cellspacing="0" class="tabletoolbar">
<tr>
<td class="tabletitletext"><div align="center" class="tabletitletext">Add TrainPlan</div></td>
</tr>
</table>
<!--DWLayoutTable-->
<html:form action="/maintainAction.do" method="post" enctype="multipart/form-data">
<table width="600" border="0" align="center" cellpadding="7" cellspacing="0" class="InputFrameMain">
<tr>
<td width="3%" nowrap> </td>
<td width="11%" nowrap><strong>Title</strong></td>
<td width="22%" nowrap><html:text maxlength="50" property="trainPlan.p_title" size="50"/></td>
<td width="11%" nowrap><div align="center"><strong>Issue Time</strong></div></td>
<td width="22%" nowrap><html:text property="trainPlan.issue_time" size="10"/>
<html:button value="Date" property="Submit"/></td>
<td width="10%" nowrap><div align="center"></div></td>
</tr>
<tr>
<td nowrap> </td>
<td nowrap><strong>Post Index</strong></td>
<td nowrap>
</td>
<td nowrap><div align="center"><strong>Issuer</strong></div></td>
<td nowrap><html:text maxlength="10" property="trainPlan.issuer" size="10"/></td>
<td height="30" colspan="8" nowrap><div align="center"></div> <div align="center">
<tr>
</tr>
</div></td>
</tr>
</table>
<br>
<table width="595" border="0" align="center" cellpadding="7" cellspacing="0" class="InputFrameMain">
Train Plan Content
<tr>
<td width="10%" nowrap><strong>TrainPlan Content</strong>:<span class="InputAreaCell"><strong><br>
</strong></span></td>
<td width="90%"><html:textarea cols="80" rows="5" property="trainPlan.p_content"></html:textarea></td>
</tr>
<tr>
<td height="30" colspan="8" nowrap><div align="center"></div> <div align="center">
</div></td>
</tr>
</table>
<br>
<table width="610" border="0" align="center" cellpadding="7" cellspacing="0" class="InputFrameMain">
Accessory
<tr>
<td width="595"><span class="InputAreaCell"><strong>Accessory1
<html:file maxlength="60" property="theFile1" size="60"/>
<br>Accessory2
<html:file maxlength="60" property="theFile2" size="60"/>
<br>Accessory3
<html:file maxlength="60" property="theFile3" size="60"/>
<br>
</strong></span></td>
</tr>
<tr>
<td height="30" colspan="8" nowrap><div align="center"></div> <div align="center">
<html:submit styleClass="button" value="提交" property="Submit" οnclick="return RgTest()"/>
</div></td>
</tr>
</table>
</html:form>
</body>
</html:html>
public String getP_title() {
return p_title;
}
public void setP_title(String p_title) {
this.p_title = p_title;
}
public int getPost_index() {
return post_index;
}
public void setPost_index(int post_index) {
this.post_index = post_index;
}
public String getIssue_time() {
return issue_time;
}
public void setIssue_time(String issue_time) {
this.issue_time = issue_time;
}
public String getIssuer() {
return issuer;
}
public void setIssuer(String issue) {
this.issuer = issue;
}
public String getP_content() {
return p_content;
}
public void setP_content(String p_content) {
this.p_content = p_content;
}
public String getP_accessory() {
return p_accessory;
}
public void setP_accessory(String p_accessory) {
this.p_accessory = p_accessory;
}
}
这是action页面,
package tester.business.maitain;
import tclcc.tester.util.Selector;
import org.apache.struts.action.*;
import javax.servlet.http.*;
import java.util.*;
import org.apache.struts.upload.FormFile;
import java.io.*;
public class MaintainAction
extends Action {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm,
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
/**@todo: complete the business logic here, this is just a skeleton.*/
MaintainForm maintainForm = (MaintainForm) actionForm;
TrainPlanDAO trainPDAO = new TrainPlanDAO();
Trainplan trainPlan = new Trainplan();
trainPlan = maintainForm.getTrainPlan();
FormFile theFile = null;
theFile = maintainForm.getTheFile1();
String p_accessory;
p_accessory = theFile.getFileName();
try {
InputStream stream = theFile.getInputStream(); //把文件读入
String filePath = httpServletRequest.getRealPath("/"); //取当前系统路径
ByteArrayOutputStream baos = new ByteArrayOutputStream();
OutputStream bos = new FileOutputStream(filePath + "//sub" + "/" +
theFile.getFileName()); //建立一个上传文件的输出流
//System.out.println(filePath+"/"+file.getFileName());
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ( (bytesRead = stream.read(buffer, 0, 8192)) != -1) {
bos.write(buffer, 0, bytesRead); //将文件写入服务器
}
bos.close();
stream.close();
} catch (Exception e) {
System.err.print(e);
}
try {
trainPlan.setP_accessory(p_accessory);
trainPDAO.addTrainPlan(trainPlan);//调用数据库插入方法
System.out.println("success");
} catch (Exception ex) {
}
httpServletRequest.setAttribute("trainPlain", trainPlan);
return (actionMapping.findForward("trainplanCreated"));
}
}
package tester.business.maitain;
import tclcc.tester.business.maitain.Trainplan;
import tclcc.tester.util.DBConn;
import java.sql.*;
import java.util.*;
public class TrainPlanDAO {
private DBConn dbconn = null;
private Connection conn = null;
private static final String ADD_TRAINPLAN=
"INSERT INTO KS_TRAINPLAN (p_id,p_title,issue_time,issuer,p_content,p_accessory) VALUES (lpad(SEQ_P_ID.nextVal,10,´0´),?,?,to_date(?,´yyyy-mm-dd´),?,?,?)";
private final static String UPDATE_TRAINPLAN=
"UPDATE KS_TRAINPLAN set p_id=?,p_title=?,post_index=?,issue_time=to_date(?,´yyyy-mm-dd´),issuer=?,p_content=?,p_accessory=? where p_id=?";
/**
* get a connection from a DB pool
* @return Connection
*/
public TrainPlanDAO() {
try {
dbconn = new DBConn();
conn = dbconn.getConnection();
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* add a row into DB
* @param examinee Examinee
* @throws SQLException
*/
public void addTrainPlan(Trainplan trainPlan) throws SQLException {
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(ADD_TRAINPLAN);
pstmt.setString(1, trainPlan.getP_title());
pstmt.setString(2, trainPlan.getIssue_time());
pstmt.setString(3, trainPlan.getIssuer());
pstmt.setString(4, trainPlan.getP_content());
pstmt.setString(5, trainPlan.getP_accessory());
pstmt.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
pstmt.close();
//conn.close();
} catch (SQLException ex1) {
}
}
}
/**
* remove a row from DB
* @param trainPlan TrainPlan
* @throws SQLException
*/
public void removeTrainPlan(Trainplan trainPlan) throws SQLException {
this.removeTrainPlan(trainPlan.getP_id());
}
/**
* remove a row from DB
* @param p_id int
* @throws SQLException
*/
public void removeTrainPlan(int p_id) throws SQLException {
Statement stmt = null;
try {
stmt = conn.createStatement();
stmt.execute("DELETE FROM ks_trainplan WHERE p_id=" + p_id);
} catch (SQLException ex) {
ex.printStackTrace();
throw new SQLException("SQLExction on : TrainPlanDAO.removeExaminee()");
} finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
/**
* update a row
* @param examinee Examinee
* @throws SQLException
*/
public void updateTrainPlan(Trainplan trainPlan) throws SQLException {
PreparedStatement pstmt = null;
try {
// UPDATE_TRAINPLAN = UPDATE_TRAINPLAN + "where p_id =" + trainPlan.getP_id(); //the condition need modification
pstmt = conn.prepareStatement(UPDATE_TRAINPLAN);
pstmt.setInt(1, trainPlan.getP_id());
pstmt.setString(2, trainPlan.getP_title());
pstmt.setInt(3, trainPlan.getPost_index());
pstmt.setString(4, trainPlan.getIssue_time());
pstmt.setString(5, trainPlan.getIssuer());
pstmt.setString(6, trainPlan.getP_content());
pstmt.setString(7, trainPlan.getP_accessory());
pstmt.setInt(8,trainPlan.getP_id());
pstmt.executeUpdate();
} /*catch (SQLException ex) {
ex.getStackTrace();
throw new SQLException("SQLExction on : TrainPlanDAO.updateExaminee()");
} */
catch(SQLException sqle){
do
{
System.err.println("Exception occoured:/nMessage:"+sqle.getMessage());
System.err.println("SQL state:"+sqle.getSQLState());
System.err.println("Vendor code:"+sqle.getErrorCode()+"/n---------------");
} while((sqle=sqle.getNextException())!=null);
}finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
/**
* get all record from DB
* @throws SQLException
* @return Collection
*/
public Collection getAll() throws SQLException {
Statement stmt = null;
ResultSet rs = null;
Trainplan trainPlan = null;
Collection list = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM ks_trainplan");
list = new ArrayList();
while (rs.next()) {
trainPlan = new Trainplan();
trainPlan.setP_id(rs.getInt("P_ID"));
trainPlan.setP_title(rs.getString("P_TITLE"));
trainPlan.setPost_index(rs.getInt("POST_INDEX"));
trainPlan.setIssue_time(rs.getString("ISSUE_TIME"));
trainPlan.setIssuer(rs.getString("ISSUER"));
trainPlan.setP_content(rs.getString("P_CONTENT"));
trainPlan.setP_accessory(rs.getString("P_ACCESSORY"));
list.add(trainPlan);
}
} catch (SQLException ex) {
} finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
return list;
}
}
public static String toString(Trainplan trainPlan){
return trainPlan.getP_title();
}
/**
* for test
* @param args String[]
*/
}
package tester.business.maitain;
import tclcc.tester.business.maitain.Trainplan;
import tclcc.tester.util.DBConn;
import java.sql.*;
import java.util.*;
public class TrainPlanDAO {
private DBConn dbconn = null;
private Connection conn = null;
private static final String ADD_TRAINPLAN=
"INSERT INTO KS_TRAINPLAN (p_id,p_title,issue_time,issuer,p_content,p_accessory) VALUES (lpad(SEQ_P_ID.nextVal,10,´0´),?,?,to_date(?,´yyyy-mm-dd´),?,?,?)";
private final static String UPDATE_TRAINPLAN=
"UPDATE KS_TRAINPLAN set p_id=?,p_title=?,post_index=?,issue_time=to_date(?,´yyyy-mm-dd´),issuer=?,p_content=?,p_accessory=? where p_id=?";
/**
* get a connection from a DB pool
* @return Connection
*/
public TrainPlanDAO() {
try {
dbconn = new DBConn();
conn = dbconn.getConnection();
} catch (Exception ex) {
ex.printStackTrace();
}
}
/**
* add a row into DB
* @param examinee Examinee
* @throws SQLException
*/
public void addTrainPlan(Trainplan trainPlan) throws SQLException {
PreparedStatement pstmt = null;
try {
pstmt = conn.prepareStatement(ADD_TRAINPLAN);
pstmt.setString(1, trainPlan.getP_title());
pstmt.setString(2, trainPlan.getIssue_time());
pstmt.setString(3, trainPlan.getIssuer());
pstmt.setString(4, trainPlan.getP_content());
pstmt.setString(5, trainPlan.getP_accessory());
pstmt.executeUpdate();
} catch (SQLException ex) {
ex.printStackTrace();
} finally {
try {
pstmt.close();
//conn.close();
} catch (SQLException ex1) {
}
}
}
/**
* remove a row from DB
* @param trainPlan TrainPlan
* @throws SQLException
*/
public void removeTrainPlan(Trainplan trainPlan) throws SQLException {
this.removeTrainPlan(trainPlan.getP_id());
}
/**
* remove a row from DB
* @param p_id int
* @throws SQLException
*/
public void removeTrainPlan(int p_id) throws SQLException {
Statement stmt = null;
try {
stmt = conn.createStatement();
stmt.execute("DELETE FROM ks_trainplan WHERE p_id=" + p_id);
} catch (SQLException ex) {
ex.printStackTrace();
throw new SQLException("SQLExction on : TrainPlanDAO.removeExaminee()");
} finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
/**
* update a row
* @param examinee Examinee
* @throws SQLException
*/
public void updateTrainPlan(Trainplan trainPlan) throws SQLException {
PreparedStatement pstmt = null;
try {
// UPDATE_TRAINPLAN = UPDATE_TRAINPLAN + "where p_id =" + trainPlan.getP_id(); //the condition need modification
pstmt = conn.prepareStatement(UPDATE_TRAINPLAN);
pstmt.setInt(1, trainPlan.getP_id());
pstmt.setString(2, trainPlan.getP_title());
pstmt.setInt(3, trainPlan.getPost_index());
pstmt.setString(4, trainPlan.getIssue_time());
pstmt.setString(5, trainPlan.getIssuer());
pstmt.setString(6, trainPlan.getP_content());
pstmt.setString(7, trainPlan.getP_accessory());
pstmt.setInt(8,trainPlan.getP_id());
pstmt.executeUpdate();
} /*catch (SQLException ex) {
ex.getStackTrace();
throw new SQLException("SQLExction on : TrainPlanDAO.updateExaminee()");
} */
catch(SQLException sqle){
do
{
System.err.println("Exception occoured:/nMessage:"+sqle.getMessage());
System.err.println("SQL state:"+sqle.getSQLState());
System.err.println("Vendor code:"+sqle.getErrorCode()+"/n---------------");
} while((sqle=sqle.getNextException())!=null);
}finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
}
}
/**
* get all record from DB
* @throws SQLException
* @return Collection
*/
public Collection getAll() throws SQLException {
Statement stmt = null;
ResultSet rs = null;
Trainplan trainPlan = null;
Collection list = null;
try {
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT * FROM ks_trainplan");
list = new ArrayList();
while (rs.next()) {
trainPlan = new Trainplan();
trainPlan.setP_id(rs.getInt("P_ID"));
trainPlan.setP_title(rs.getString("P_TITLE"));
trainPlan.setPost_index(rs.getInt("POST_INDEX"));
trainPlan.setIssue_time(rs.getString("ISSUE_TIME"));
trainPlan.setIssuer(rs.getString("ISSUER"));
trainPlan.setP_content(rs.getString("P_CONTENT"));
trainPlan.setP_accessory(rs.getString("P_ACCESSORY"));
list.add(trainPlan);
}
} catch (SQLException ex) {
} finally {
try {
conn.close();
} catch (SQLException ex1) {
ex1.printStackTrace();
}
return list;
}
}
public static String toString(Trainplan trainPlan){
return trainPlan.getP_title();
}
/**
* for test
* @param args String[]
*/
}
这是view页面viewtrainplan.jsp(上一张jsp名为planManage.jsp)
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
<html>
<head>
<title>
veiwtrainplan
</title>
</head>
<%@ page import="tclcc.tester.business.maitain.Trainplan"%>
<body bgcolor="#ffffff">
<%
Trainplan trainP = (Trainplan)request.getAttribute("trainPlain");
%>
已经创建了计划
<%=trainP.getP_title()%>
<br>
<%=trainP.getP_accessory()%>
</body>
</html>
最后看看struts-config页面的内容
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">
<struts-config>
<form-beans>
<form-bean name="examineeActionForm" type="tclcc.tester.business.ExamineeActionForm" />
<form-bean name="maintainForm" type="tclcc.tester.business.maitain.MaintainForm" />
<form-bean name="addPlanForm" type="tclcc.tester.business.maitain.AddPlanForm" />
</form-beans>
<global-forwards>
<forward name="veiwtrainplan" path="/veiwtrainplan.jsp" />
</global-forwards>
<action-mappings>
<action name="examineeActionForm" path="/admin/showMain" type="tclcc.tester.business.ShowMain">
<forward name="success" path="/admin/examinee/main.jsp" />
</action>
<action input="/admin/examinee/addExaminee.jsp" name="examineeActionForm" path="/admin/saveAddExaminee" type="tclcc.tester.business.SaveAddExamineeAction">
<forward name="success" path="/admin/showMain.do" />
</action>
<action name="examineeActionForm" path="/admin/addExaminee" type="tclcc.tester.business.AddExamineeAction">
<forward name="success" path="/admin/examinee/addExaminee.jsp" />
</action>
<action input="/admin/maintain/planManage.jsp" name="maintainForm" path="/maintainAction" scope="request" type="tclcc.tester.business.maitain.MaintainAction" validate="true">
<forward name="trainplanCreated" path="/veiwtrainplan.jsp" />
</action>
<action name="maintainForm" path="/initAction" scope="request" type="tclcc.tester.business.maitain.InitAction" validate="true">
<forward name="maintain" path="/admin/maintain/planManage.jsp" />
</action>
</action-mappings>
</struts-config>
祝你好运!