クラス UrlTag
java.lang.ObjectSE
jakarta.servlet.jsp.tagext.TagSupport
org.springframework.web.servlet.tags.RequestContextAwareTag
org.springframework.web.servlet.tags.HtmlEscapingAwareTag
org.springframework.web.servlet.tags.UrlTag
- 実装されたすべてのインターフェース:
IterationTagEE
、JspTagEE
、TagEE
、TryCatchFinallyEE
、SerializableSE
、ParamAware
<url>
タグは URL を作成します。下位互換性を考慮して、JSTL c:url
タグをモデルにしています。JSTL 機能の強化には以下が含まれます。
- URL エンコードされたテンプレート URI 変数
- URL の HTML/XML エスケープ
- JavaScript の URL のエスケープ
テンプレート URI 変数は 'value'
属性で示され、中括弧 '{variableName}' でマークされます。中括弧と属性名は、url タグの本文の spring:param タグで定義されたパラメーターの URL エンコードされた値に置き換えられます。使用可能なパラメーターがない場合、リテラル値が渡されます。テンプレート変数に一致するパラメーターはクエリ文字列に追加されません。
値は URL エンコードされるため、URI テンプレート変数に spring:param タグを使用することは、直接 EL 置換よりも強く推奨されます。URL を適切にエンコードしないと、アプリケーションが XSS およびその他のインジェクション攻撃に対して脆弱になる可能性があります。
'htmlEscape'
属性を "true" に設定することにより、URL を HTML/XML エスケープできます。このタグインスタンス、ページレベル、web.xml
レベルで、HTML エスケープ設定を検出します。デフォルトは "false" です。URL 値を変数に設定する場合、エスケープは推奨されません。
使用例:
<spring:url value="/url/path/{variableName}"> <spring:param name="variableName" value="more than JSTL c:url" /> </spring:url>
上記の結果: /currentApplicationContext/url/path/more%20than%20JSTL%20c%3Aurl
属性 | 必須 ? | ランタイム式? | 説明 |
---|---|---|---|
value | true | true | ビルドする URL。この値には、名前付きパラメーターの URL エンコード値で置き換えられるテンプレート {placeholders} を含めることができます。パラメーターは、このタグの本文内の param タグを使用して定義する必要があります。 |
コンテキスト | false | true | リモートアプリケーションコンテキストパスを指定します。デフォルトは、現在のアプリケーションコンテキストパスです。 |
var | false | true | URL 値のエクスポート先の変数の名前。指定しない場合、URL は出力として書き込まれます。 |
範囲 | false | true | 変数のスコープ。「アプリケーション」、「セッション」、「リクエスト」、「ページ」の各スコープがサポートされています。デフォルトはページスコープです。var 属性も定義されていない限り、この属性は効果がありません。 |
htmlEscape | false | true | このタグの HTML エスケープをブール値として設定します。現在のページのデフォルトの HTML エスケープ設定をオーバーライドします。 |
javaScriptEscape | false | true | このタグの JavaScript エスケープをブール値として設定します。デフォルトは false です。 |
フィールドサマリー
クラス org.springframework.web.servlet.tags.RequestContextAwareTag から継承されたフィールド
logger, REQUEST_CONTEXT_PAGE_ATTRIBUTE
クラス jakarta.servlet.jsp.tagext.TagSupportEE から継承されたフィールド
idEE, pageContextEE
インターフェース jakarta.servlet.jsp.tagext.IterationTagEE から継承されたフィールド
EVAL_BODY_AGAINEE
インターフェース jakarta.servlet.jsp.tagext.TagEE から継承されたフィールド
EVAL_BODY_INCLUDEEE, EVAL_PAGEEE, SKIP_BODYEE, SKIP_PAGEEE
コンストラクターのサマリー
メソッドのサマリー
修飾子と型メソッド説明void
親タグに値を渡すための、ネストされた spring:param タグのコールバックフック。protected StringSE
createQueryString
(ListSE<Param> params, SetSE<StringSE> usedParams, boolean includeQueryStringDelimiter) テンプレートパラメーターとしてまだ適用されていない使用可能なパラメーターからクエリ文字列を作成します。int
doEndTag()
int
実際の作業を実行するために doStartTag によって呼び出されます。protected StringSE
利用可能なパラメーターに一致する URL のテンプレートマーカーを置き換えます。void
setContext
(StringSE context) URL のコンテキストパスを設定します。void
setJavaScriptEscape
(boolean javaScriptEscape) このタグの JavaScript エスケープをブール値として設定します。void
URL 変数をエクスポートするスコープを設定します。void
URL の値を設定します。void
変数名を設定して、URL を公開します。クラス org.springframework.web.servlet.tags.HtmlEscapingAwareTag から継承されたメソッド
htmlEscape, isDefaultHtmlEscape, isHtmlEscape, isResponseEncodedHtmlEscape, setHtmlEscape
クラス org.springframework.web.servlet.tags.RequestContextAwareTag から継承されたメソッド
doCatch, doFinally, doStartTag, getRequestContext
クラス jakarta.servlet.jsp.tagext.TagSupportEE から継承されたメソッド
doAfterBodyEE, findAncestorWithClassEE, getIdEE, getParentEE, getValueEE, getValuesEE, releaseEE, removeValueEE, setIdEE, setPageContextEE, setParentEE, setValueEE
コンストラクターの詳細
UrlTag
public UrlTag()
メソッドの詳細
setValue
URL の値を設定します。setContext
URL のコンテキストパスを設定します。デフォルトは現在のコンテキストです。setVar
変数名を設定して、URL を公開します。デフォルトでは、現在の JspWriter に URL がレンダリングされますsetScope
URL 変数をエクスポートするスコープを設定します。この属性は、var も定義されていない限り意味がありません。setJavaScriptEscape
このタグの JavaScript エスケープをブール値として設定します。デフォルトは "false" です。addParam
インターフェースからコピーされた説明:ParamAware
親タグに値を渡すための、ネストされた spring:param タグのコールバックフック。- 次で指定:
- インターフェース
ParamAware
のaddParam
- パラメーター:
param
- ネストされたspring:param
タグの結果
doStartTagInternal
クラスからコピーされた説明:RequestContextAwareTag
実際の作業を実行するために doStartTag によって呼び出されます。- 次で指定:
- クラス
RequestContextAwareTag
のdoStartTagInternal
- 戻り値:
- TagSupport.doStartTag と同じ
- 例外:
JspExceptionEE
- 関連事項:
doEndTag
- 次で指定:
- インターフェース
TagEE
のdoEndTagEE
- オーバーライド:
- クラス
TagSupportEE
のdoEndTagEE
- 例外:
JspExceptionEE
createQueryString
protected StringSE createQueryString(ListSE<Param> params, SetSE<StringSE> usedParams, boolean includeQueryStringDelimiter) throws JspExceptionEE テンプレートパラメーターとしてまだ適用されていない使用可能なパラメーターからクエリ文字列を作成します。パラメーターの名前と値は URL エンコードされます。
- パラメーター:
params
- クエリ文字列を構築するパラメーターusedParams
- テンプレートパラメーターとして適用されたパラメーター名のセットincludeQueryStringDelimiter
- クエリ文字列が "?" で始まる場合は true の代わりに '&'- 戻り値:
- クエリ文字列
- 例外:
JspExceptionEE
replaceUriTemplateParams
protected StringSE replaceUriTemplateParams(StringSE uri, ListSE<Param> params, SetSE<StringSE> usedParams) throws JspExceptionEE 利用可能なパラメーターに一致する URL のテンプレートマーカーを置き換えます。一致したパラメーターの名前が、使用されているパラメーターセットに追加されます。パラメーター値は URL エンコードされます。
- パラメーター:
uri
- 置換するテンプレートパラメーターを含む URLparams
- テンプレートマーカーを置き換えるために使用されるパラメーターusedParams
- 置き換えられたテンプレートパラメーター名のセット- 戻り値:
- テンプレートパラメーターが置換された URL
- 例外:
JspExceptionEE