public abstract class AbstractFileDownloadView
extends org.springframework.web.servlet.view.AbstractView
バリナリデータをレスポンスに書き込む。 必要に応じて、 レスポンスボディに書き込むストリームの取得処理と、 サブクラスにて、レスポンスヘッダの情報設定処理を実装すること。
本クラスの実装クラスを利用する場合、まず、ResourceBundleViewResolverをBean定義すること。
【Bean定義ファイルの設定例】
<bean id="fileDownloadViewResolver"
class="org.springframework.web.servlet.view.ResourceBundleViewResolver">
<property name="basename" value="views"/>
</bean>
次に、バイナリデータをレスポンスとするコントローラのBean定義で、 property「viewName」を定義すること。
【Bean定義ファイルの設定例】
<id name="fileDownloadSampleController"
class="jp.terasoluna.sample2.web.controller.FileDownloadSampleController"
parent="queryRequestController" scope="singleton">
<property name="viewName"><value>FileDownloadSample</value></property>
さらに、fileDownloadViewResolverの属性basenameのプロパティファイル(上記の設定の場合、view.properties)に、 「<コントローラのBean定義の属性viewNameプロパティ値>.class」のキーで 実行するViewクラスを指定すること。
【view.propertiesの設定例】
FileDownloadSample.class=jp.terasoluna.sample2.web.view.SampleFileDownloadView
修飾子とタイプ | フィールドと説明 |
---|---|
protected int |
chunkSize
チャンクサイズ。
|
コンストラクタと説明 |
---|
AbstractFileDownloadView() |
修飾子とタイプ | メソッドと説明 |
---|---|
protected abstract void |
addResponseHeader(Map model,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
レスポンスヘッダを追加する。
|
protected abstract InputStream |
getInputStream(Map model,
javax.servlet.http.HttpServletRequest request)
レスポンスボディに書き込むストリームを取得する。
|
protected void |
renderMergedOutputModel(Map model,
javax.servlet.http.HttpServletRequest request,
javax.servlet.http.HttpServletResponse response)
レスポンスをレンダリングする。
|
protected void |
writeResponseStream(InputStream inputStream,
OutputStream outputStream)
ダウンロードファイルをHTTPレスポンスのストリームに書き込む。
|
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposePathVariables, setRequestContextAttribute, setResponseContentType, toString, writeToResponse
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
protected void renderMergedOutputModel(Map model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws IOException
renderMergedOutputModel
クラス内 org.springframework.web.servlet.view.AbstractView
model
- モデルオブジェクトrequest
- HTTPリクエストresponse
- HTTPレスポンスIOException
- IO例外protected abstract InputStream getInputStream(Map model, javax.servlet.http.HttpServletRequest request) throws IOException
model
- モデルオブジェクトrequest
- HTTPリクエストIOException
- 入出力例外protected void writeResponseStream(InputStream inputStream, OutputStream outputStream) throws IOException
inputStream
- ダウンロードするファイルデータの入力ストリームoutputStream
- レスポンスの出力ストリームIOException
- 入出力例外(例外処理は呼び元で行う)protected abstract void addResponseHeader(Map model, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
model
- モデルオブジェクトrequest
- HTTPリクエストresponse
- HTTPレスポンスCopyright © 2015. All Rights Reserved.