FileUploadの為のJSP

アップロード用フォームのJSPは次のようにする。
encodeを multipart/form-data にすることぐらい。

/jsp/uploadform.jsp

<%@page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<tiles:insertDefinition name="default.layout">
  <tiles:putAttribute name="title">Upload</tiles:putAttribute>
  <tiles:putAttribute name="body">
    <s:actionerror />
    <s:form action="upload" method="post" enctype="multipart/form-data">
      <s:file name="file1"     key="label.file1" />
      <s:file name="file2"     key="label.file2" />
      	
      <tr><td colspan="2">
        <s:submit name=":upload" key="label.upload" theme="simple" />
      </td></tr>
    </s:form>
  </tiles:putAttribute>
</tiles:insertDefinition>

ちょっとTIPS: submitのnameに ":upload"としているのは 投げられたパラメータを setXXX されたくない場合 - Struts 2+Spring 2+Tiles+Acegi+iBatis+GWT+JUnit 4+JMockit でフルスタックJAVAフレームワーク を参照

UploadAction.properties のリソースは次のような感じ

label.file1=ファイル1
label.file2=ファイル2
label.upload=アップロード

完了画面ではファイル名とMIMEタイプを表示場合は次のとおり

<%@page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib prefix="s" uri="/struts-tags" %>

<tiles:insertDefinition name="default.layout">
 <tiles:putAttribute name="title">Upload</tiles:putAttribute>
 <tiles:putAttribute name="body">
 	<s:text name="label.file1"/>[<s:property value="%{ file1FileName }"/>][<s:property value="%{ file1ContentType }"/>]<br/>
 	<s:text name="label.file2"/>[<s:property value="%{ file2FileName }"/>][<s:property value="%{ file2ContentType }"/>]<br/>
 </tiles:putAttribute>
</tiles:insertDefinition>