クラス UrlTag

実装されたすべてのインターフェース:
IterationTagEEJspTagEETagEETryCatchFinallyEESerializableSEParamAware

public class UrlTag extends HtmlEscapingAwareTag implements 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

属性の概要
属性 必須 ? ランタイム式? 説明
valuetruetrue ビルドする URL。この値には、名前付きパラメーターの URL エンコード値で置き換えられるテンプレート {placeholders} を含めることができます。パラメーターは、このタグの本文内の param タグを使用して定義する必要があります。
コンテキスト falsetrue リモートアプリケーションコンテキストパスを指定します。デフォルトは、現在のアプリケーションコンテキストパスです。
varfalsetrueURL 値のエクスポート先の変数の名前。指定しない場合、URL は出力として書き込まれます。
範囲 falsetrue 変数のスコープ。「アプリケーション」、「セッション」、「リクエスト」、「ページ」の各スコープがサポートされています。デフォルトはページスコープです。var 属性も定義されていない限り、この属性は効果がありません。
htmlEscapefalsetrue このタグの HTML エスケープをブール値として設定します。現在のページのデフォルトの HTML エスケープ設定をオーバーライドします。
javaScriptEscapefalsetrue このタグの JavaScript エスケープをブール値として設定します。デフォルトは false です。
導入:
3.0
作成者:
Scott Andrews
関連事項:
  • コンストラクターの詳細

    • UrlTag

      public UrlTag()
  • メソッドの詳細

    • setValue

      public void setValue(StringSE value)
      URL の値を設定します。
    • setContext

      public void setContext(StringSE context)
      URL のコンテキストパスを設定します。デフォルトは現在のコンテキストです。
    • setVar

      public void setVar(StringSE var)
      変数名を設定して、URL を公開します。デフォルトでは、現在の JspWriter に URL がレンダリングされます
    • setScope

      public void setScope(StringSE scope)
      URL 変数をエクスポートするスコープを設定します。この属性は、var も定義されていない限り意味がありません。
    • setJavaScriptEscape

      public void setJavaScriptEscape(boolean javaScriptEscape) throws JspExceptionEE
      このタグの JavaScript エスケープをブール値として設定します。デフォルトは "false" です。
      例外:
      JspExceptionEE
    • addParam

      public void addParam(Param param)
      インターフェースからコピーされた説明: ParamAware
      親タグに値を渡すための、ネストされた spring:param タグのコールバックフック。
      次で指定:
      インターフェース ParamAwareaddParam 
      パラメーター:
      param - ネストされた spring:param タグの結果
    • doStartTagInternal

      public int doStartTagInternal() throws JspExceptionEE
      クラスからコピーされた説明: RequestContextAwareTag
      doStartTag によって呼び出され、実際の作業を実行します。
      次で指定:
      クラス RequestContextAwareTagdoStartTagInternal 
      戻り値:
      TagSupport.doStartTag と同じ
      例外:
      JspExceptionEE
      関連事項:
    • doEndTag

      public int doEndTag() throws JspExceptionEE
      次で指定:
      インターフェース TagEEdoEndTagEE 
      オーバーライド:
      クラス TagSupportEEdoEndTagEE 
      例外:
      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 - 置換するテンプレートパラメーターを含む URL
      params - テンプレートマーカーを置き換えるために使用されるパラメーター
      usedParams - 置き換えられたテンプレートパラメーター名のセット
      戻り値:
      テンプレートパラメーターが置換された URL
      例外:
      JspExceptionEE