public class XsltView extends AbstractUrlBasedView
XSLT Source オブジェクトはモデルのパラメーターとして提供され、レスポンスのレンダリング中に detected として提供されます。ユーザーは、sourceKey プロパティを使用してモデルの特定のエントリを指定するか、Spring に Source オブジェクトを配置させることができます。このクラスは、オブジェクトの Source 実装への基本的な変換も提供します。詳細については、here を参照してください。
すべてのモデルパラメーターは、パラメーターとして XSLTTransformer に渡されます。さらに、ユーザーは output properties を Transformer に渡すように構成できます。
DEFAULT_CONTENT_TYPEloggerPATH_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) 提供されている HttpServletResponseEE を構成します。 |
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, toStringaddStaticAttribute, 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, writeToResponsegetServletContext, getTempDir, getWebApplicationContext, initApplicationContext, initServletContext, isContextRequired, setServletContextgetApplicationContext, getMessageSourceAccessor, obtainApplicationContext, requiredContextClass, setApplicationContextpublic 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.INDENTpublic 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 BeansExceptionApplicationObjectSupport の 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.ExceptionAbstractView最初のステップは、リクエストの準備です。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 の OutputStreamEE をラップする 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.Exceptionsource - 元のソースオブジェクト java.lang.IllegalArgumentException - 指定されたオブジェクトがサポートされている型ではない場合 java.lang.Exceptionprotected 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)HttpServletResponseEE を構成します。 このメソッドのデフォルト実装は、Transformer で指定された「メディア型」および「エンコーディング」出力プロパティから content typeEE および encodingEE を設定します。
model - マージされた出力マップ (非 null)response - 現在の HTTP レスポンス transformer - ターゲットトランス protected javax.xml.transform.Transformer createTransformer(javax.xml.transform.Templates templates)
throws javax.xml.transform.TransformerConfigurationExceptionTransformer インスタンスを作成します。 デフォルトの実装では、単に Templates.newTransformer() を呼び出し、指定されている場合はカスタム URIResolver で Transformer を構成します。
templates - Transformer を作成する XSLT テンプレートインスタンス javax.xml.transform.TransformerConfigurationException - 作成に失敗した場合 protected javax.xml.transform.Source getStylesheetSource()
configured URL にある XSLT テンプレートの XSLT Source を取得します。