struts2 ファイル アップロード
今、ファイルのアップロードのプログラム開発を行なっておりますが
アップロードのボタンを押すとHTTPステータス500のエラーで実行ができません。
詳しい方、間違っている箇所のご指摘宜しくお願い致します。
プログラムは以下の通りです。(JAVAは一部削除しています)
(JSP)
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page pageEncoding="Windows-31J" %>
<%@taglib prefix="s" uri="/struts-tags" %>
<%@taglib prefix="original" uri="/original-tags" %>
<%@taglib prefix="originalJK" uri="/original-JK-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
%@ include file="html-head.jsp" %>
<script type="text/javascript">
</script>
</head>
<body onload>
<%@ include file="HeaderTitle.jsp" %>
<div class="navigation" align="right">
<originalJK:CommonLinkTag mode="2" /><br>
</div>
<br>
<s:form enctype="multipart/form-data">
<table width="100%">
<tr>
<td>
<INPUT type=file name="upload">
</td>
</tr>
</table>
<table width="100%">
<tr>
<td>
<s:submit value="EXCELアップロード" cssClass="form_button" action="tEST11A" method="doUpload" onclick="return confirm('アップロードしてよろしいですか。');"/>
</td>
</tr>
</table>
</s:form>
</body>
<html>
(JAVA)
@ParentPackage(value = "Original")
@Results({ @Result(name = "success", value = "jsp/TEST11A.jsp"),
@Result(name = "failure", value = "jsp/TEST11A.jsp") })
public class TEST11AAction extends SuperAction {
private String aBtnUpdateMsg = "";
private File upload;
private String uploadContentType;
private String uploadFileName;
public String execute() throws Exception {
return "success";
}
public String doUpload() throws Exception {
try {
// DBコネクションオープン
vDb.open();
TEST11ADao vDao = new TEST11ADao(vDb);
int vCount = 0;
//データ存在チェック
vCount = vDao.dbCntLine();
FileInputStream fis = new FileInputStream(upload);
POIFSFileSystem fs = new POIFSFileSystem(fis);
// ワークブック・オブジェクトの取得
HSSFWorkbook wb = new HSSFWorkbook(fs);
// 総ワークシート数の取得
int sheets = wb.getNumberOfSheets();
// ワークシートごとに、データを取得
int idx = 0;
for (int sheetIdx = 0; sheetIdx < sheets; sheetIdx++ ) {
//コミット
vDb.commit();
} finally {
// DBクローズ
vDb.close();
}
return "success";
}
public File getUpload() {
return upload;
}
public void setUpload(File upload) {
this.upload = upload;
}
public String getUploadContentType() {
return uploadContentType;
}
public void setUploadContentType(String uploadContentType) {
this.uploadContentType = uploadContentType;
}
public String getUploadFileName() {
return uploadFileName;
}
public void setUploadFileName(String uploadFileName) {
this.uploadFileName = uploadFileName;
}
補足
すいません。 質問事項のアクションクラスの記述抜けがありました。 DBはパッケージ名で、 #upload()は public String upload() { if(upload == null) { System.out.println("ファイルなし"); } else { System.out.println("ファイルあり"); } return "ng"; } とFileUploadTestnクラス内に記述して ファイルを取得できているか確認の動作をしています。