public class XsltView extends AbstractUrlBasedView
XSLT Source オブジェクトはモデルのパラメーターとして提供され、レスポンスのレンダリング中に detected
として提供されます。ユーザーは、sourceKey
プロパティを使用してモデルの特定のエントリを指定するか、Spring に Source オブジェクトを配置させることができます。このクラスは、オブジェクトの Source 実装への基本的な変換も提供します。詳細については、here
を参照してください。
すべてのモデルパラメーターは、パラメーターとして XSLTTransformer に渡されます。さらに、ユーザーは output properties
を Transformer に渡すように構成できます。
DEFAULT_CONTENT_TYPE
logger
PATH_VARIABLES, RESPONSE_STATUS_ATTRIBUTE, SELECTED_CONTENT_TYPE
コンストラクターと説明 |
---|
XsltView() |
修飾子と型 | メソッドと説明 |
---|---|
protected void | configureIndentation(javax.xml.transform.Transformer transformer) 提供されている Transformer のインデント設定を構成します。 |
protected void | configureResponse(java.util.Map<java.lang.String,java.lang.Object> model, HttpServletResponseEE response, javax.xml.transform.Transformer transformer) 提供されている HttpServletResponse EE を構成します。 |
protected void | configureTransformer(java.util.Map<java.lang.String,java.lang.Object> model, HttpServletResponseEE response, javax.xml.transform.Transformer transformer) 提供された Transformer インスタンスを構成します。 |
protected javax.xml.transform.Source | convertSource(java.lang.Object source) |
protected void | copyModelParameters(java.util.Map<java.lang.String,java.lang.Object> model, javax.xml.transform.Transformer transformer) 提供されたマップのすべてのエントリを、提供された Transformer の parameter set にコピーします。 |
protected void | copyOutputProperties(javax.xml.transform.Transformer transformer) 構成された出力 Properties (存在する場合)を、提供された Transformer の output property set にコピーします。 |
protected javax.xml.transform.Result | createResult(HttpServletResponseEE response) 変換の結果をレンダリングするために使用される XSLT Result を作成します。 |
protected javax.xml.transform.Transformer | createTransformer(javax.xml.transform.Templates templates) XSLT 変換を優先するために使用される Transformer インスタンスを作成します。 |
protected java.lang.Class<?>[] | getSourceTypes() XSLT Source への変換時にサポートされる Classes の配列を返します。 |
protected javax.xml.transform.Source | getStylesheetSource() configured URL にある XSLT テンプレートの XSLT Source を取得します。 |
protected javax.xml.transform.TransformerFactory | getTransformerFactory() この XsltView が使用する TransformerFactory を返します。 |
protected void | initApplicationContext() この XsltView の TransformerFactory を初期化します。 |
protected javax.xml.transform.Source | locateSource(java.util.Map<java.lang.String,java.lang.Object> model) 必要に応じてオブジェクトを変換し、提供されたモデルで Source オブジェクトを見つけます。 |
protected javax.xml.transform.TransformerFactory | newTransformerFactory(java.lang.Class<? extends javax.xml.transform.TransformerFactory> transformerFactoryClass) このビューの新しい TransformerFactory をインスタンス化します。 |
protected void | renderMergedOutputModel(java.util.Map<java.lang.String,java.lang.Object> model, HttpServletRequestEE request, HttpServletResponseEE response) ビューを実際にレンダリングするには、サブクラスでこのメソッドを実装する必要があります。 |
void | setCacheTemplates(boolean cacheTemplates) XSLT Templates インスタンスのキャッシュをオン / オフにします。 |
void | setErrorListener(javax.xml.transform.ErrorListener errorListener) 変換エラーと警告のカスタム処理のために ErrorListener インターフェースの実装を設定します。 |
void | setIndent(boolean indent) XSLT トランスフォーマーが結果ツリーを出力するときに空白を追加するかどうかを設定します。 |
void | setOutputProperties(java.util.Properties outputProperties) スタイルシートに適用される任意のトランスフォーマー出力プロパティを設定します。 |
void | setSourceKey(java.lang.String sourceKey) XSLT ソースを表すモデル属性の名前を設定します。 |
void | setTransformerFactoryClass(java.lang.Class<? extends javax.xml.transform.TransformerFactory> transformerFactoryClass) 使用する XSLT TransformerFactory クラスを指定します。 |
void | setUriResolver(javax.xml.transform.URIResolver uriResolver) 変換で使用される URIResolver を設定します。 |
afterPropertiesSet, checkResource, getUrl, isUrlRequired, setUrl, toString
addStaticAttribute, createMergedOutputModel, createRequestContext, createTemporaryOutputStream, exposeModelAsRequestAttributes, formatViewName, generatesDownloadContent, getAttributesMap, getBeanName, getContentType, getRequestContextAttribute, getRequestToExpose, getStaticAttributes, isExposePathVariables, prepareResponse, render, setAttributes, setAttributesCSV, setAttributesMap, setBeanName, setContentType, setExposeContextBeansAsAttributes, setExposedContextBeanNames, setExposePathVariables, setRequestContextAttribute, setResponseContentType, writeToResponse
getServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContext
getApplicationContext, getMessageSourceAccessor, obtainApplicationContext, requiredContextClass, setApplicationContext
public void setTransformerFactoryClass(java.lang.Class<? extends javax.xml.transform.TransformerFactory> transformerFactoryClass)
指定されたクラスのデフォルトコンストラクターが呼び出され、このビューの TransformerFactory が構築されます。
public void setSourceKey(java.lang.String sourceKey)
次のソース型がそのままサポートされています: Source
、Document
、Node
、Reader
、InputStream
および Resource
。
public void setUriResolver(javax.xml.transform.URIResolver uriResolver)
URIResolver は、XSLT document()
関数への呼び出しを処理します。
public void setErrorListener(@Nullable javax.xml.transform.ErrorListener errorListener)
ErrorListener
インターフェースの実装を設定します。 設定しない場合、デフォルトの SimpleTransformErrorListener
が使用され、ビュークラスのロガーインスタンスを使用して警告をログに記録し、エラーを再スローして XML 変換を中止します。
public void setIndent(boolean indent)
デフォルトは true
(オン)です。これを false
(オフ)に設定して、「インデント」キーを指定しないようにします。選択はスタイルシートに任せます。
OutputKeys.INDENT
public void setOutputProperties(java.util.Properties outputProperties)
ここで指定した値は、このビューがプログラムで設定するデフォルトを上書きします。
Transformer.setOutputProperty(java.lang.String, java.lang.String)
public void setCacheTemplates(boolean cacheTemplates)
Templates
インスタンスのキャッシュをオン / オフにします。デフォルト値は "true" です。キャッシングがパフォーマンスに深刻な影響を与えない開発では、これを "false" にのみ設定してください。
protected void initApplicationContext() throws BeansException
ApplicationObjectSupport
の initApplicationContext
ApplicationContextException
- 初期化エラーの場合 BeansException
- ApplicationContext メソッドによってスローされた場合 ApplicationObjectSupport.setApplicationContext(org.springframework.context.ApplicationContext)
protected javax.xml.transform.TransformerFactory newTransformerFactory(@Nullable java.lang.Class<? extends javax.xml.transform.TransformerFactory> transformerFactoryClass)
デフォルトの実装では、単に TransformerFactory.newInstance()
を呼び出します。"transformerFactoryClass"
が明示的に指定されている場合、指定されたクラスのデフォルトのコンストラクターが代わりに呼び出されます。
サブクラスでオーバーライドできます。
transformerFactoryClass
- 指定されたファクトリクラス (もしあれば)setTransformerFactoryClass(java.lang.Class<? extends javax.xml.transform.TransformerFactory>)
, getTransformerFactory()
protected final javax.xml.transform.TransformerFactory getTransformerFactory()
null
)protected void renderMergedOutputModel(java.util.Map<java.lang.String,java.lang.Object> model, HttpServletRequestEE request, HttpServletResponseEE response) throws java.lang.Exception
AbstractView
最初のステップは、リクエストの準備です。JSP の場合、これはモデルオブジェクトをリクエスト属性として設定することを意味します。2 番目のステップは、たとえば RequestDispatcher を介した JSP を含む、実際のビューのレンダリングです。
AbstractView
の renderMergedOutputModel
model
- 静的な属性よりも動的な値が優先される、結合された出力マップ(非 null
)request
- 現在の HTTP リクエスト response
- 現在の HTTP レスポンス java.lang.Exception
- レンダリングに失敗した場合 protected javax.xml.transform.Result createResult(HttpServletResponseEE response) throws java.lang.Exception
Result
を作成します。 デフォルトの実装では、提供された HttpServletResponse の OutputStream
EE をラップする StreamResult
を作成します。
response
- 現在の HTTP レスポンス java.lang.Exception
- 結果を構築できない場合 @Nullable protected javax.xml.transform.Source locateSource(java.util.Map<java.lang.String,java.lang.Object> model) throws java.lang.Exception
必要に応じてオブジェクトを変換し、提供されたモデルで Source
オブジェクトを見つけます。デフォルトの実装では、supported type
のオブジェクトを見つける前に、構成済みの source key
がある場合はそれを調べます。
model
- マージされたモデルマップ null
)java.lang.Exception
- ソースの検索中にエラーが発生した場合 setSourceKey(java.lang.String)
, convertSource(java.lang.Object)
protected java.lang.Class<?>[] getSourceTypes()
Source
への変換時にサポートされる Classes
の配列を返します。 現在、Source
、Document
、Node
、Reader
、InputStream
および Resource
をサポートしています。
protected javax.xml.transform.Source convertSource(java.lang.Object source) throws java.lang.Exception
source
- 元のソースオブジェクト java.lang.IllegalArgumentException
- 指定されたオブジェクトがサポートされている型ではない場合 java.lang.Exception
protected void configureTransformer(java.util.Map<java.lang.String,java.lang.Object> model, HttpServletResponseEE response, javax.xml.transform.Transformer transformer)
Transformer
インスタンスを構成します。 デフォルトの実装では、パラメーターがモデルから Transformer の parameter set
にコピーされます。この実装は、output properties
を Transformer
output properties
にもコピーします。インデントプロパティも設定されます。
model
- マージされた出力マップ (非 null
)response
- 現在の HTTP レスポンス transformer
- ターゲットトランス copyModelParameters(Map, Transformer)
, copyOutputProperties(Transformer)
, configureIndentation(Transformer)
protected final void configureIndentation(javax.xml.transform.Transformer transformer)
Transformer
のインデント設定を構成します。transformer
- ターゲットトランス TransformerUtils.enableIndenting(javax.xml.transform.Transformer)
, TransformerUtils.disableIndenting(javax.xml.transform.Transformer)
protected final void copyOutputProperties(javax.xml.transform.Transformer transformer)
Properties
(存在する場合)を、提供された Transformer
の output property set
にコピーします。transformer
- ターゲットトランス protected final void copyModelParameters(java.util.Map<java.lang.String,java.lang.Object> model, javax.xml.transform.Transformer transformer)
Transformer
の parameter set
にコピーします。model
- マージされた出力マップ (非 null
)transformer
- ターゲットトランス protected void configureResponse(java.util.Map<java.lang.String,java.lang.Object> model, HttpServletResponseEE response, javax.xml.transform.Transformer transformer)
HttpServletResponse
EE を構成します。 このメソッドのデフォルト実装は、Transformer
で指定された「メディア型」および「エンコーディング」出力プロパティから content type
EE および encoding
EE を設定します。
model
- マージされた出力マップ (非 null
)response
- 現在の HTTP レスポンス transformer
- ターゲットトランス protected javax.xml.transform.Transformer createTransformer(javax.xml.transform.Templates templates) throws javax.xml.transform.TransformerConfigurationException
Transformer
インスタンスを作成します。 デフォルトの実装では、単に Templates.newTransformer()
を呼び出し、指定されている場合はカスタム URIResolver
で Transformer
を構成します。
templates
- Transformer を作成する XSLT テンプレートインスタンス javax.xml.transform.TransformerConfigurationException
- 作成に失敗した場合 protected javax.xml.transform.Source getStylesheetSource()
configured URL
にある XSLT テンプレートの XSLT Source
を取得します。