Package nablarch.common.web.tag
Class TagUtil
java.lang.Object
nablarch.common.web.tag.TagUtil
カスタムタグの作成を助けるユーティリティ。
-
Field Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
指定されたURIにGETパラメータで静的リソースのバージョンを付加する。static Object
chooseObjectOrProperty
(Object obj, String[] splitName) getValue() メソッドの返すオブジェクトについて、オブジェクトそのものまたはプロパティを選択して返す
基本的には指定されたスコープのname属性のプロパティを取得するが、 ただし、splitName が1つの場合、特別にオブジェクトそのものを返す。static boolean
contains
(Collection<?> values, Object value) 選択項目において選択した値に、選択肢の値が含まれているかを判定する。createCompositeKeyValueList
(jakarta.servlet.jsp.PageContext pageContext, String prefix, List<String> keyNames) リクエストスコープまたはパラメータに入った値からマルチキーを復元する。static String
createEndTag
(String tagName) 終了タグを作成する。static FormatSpec
createFormatSpec
(String format) "データタイプ{パターン}"形式のフォーマット文字列からFormatSpec
を生成する。static String
createHiddenTag
(String name, String value) hiddenタグを作成する。static String
createLabelTag
(String type, String content, String forAttribute, String cssClass) labelタグを作成する。static String
createScriptTag
(jakarta.servlet.jsp.PageContext pageContext, String javaScript) JavaScriptを含めるscriptタグを作成する。static String
createStartTag
(String tagName, HtmlAttributes attributes) 開始タグを作成する。static String
createTagWithBody
(String tagName, HtmlAttributes attributes, String body) ボディを持つタグを作成する。static String
createTagWithoutBody
(String tagName, HtmlAttributes attributes) ボディを持たないタグを作成する。static void
editClassAttribute
(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, String cssClass) class属性を編集する。static String
editClassAttributeForError
(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, String cssClass, Set<String> nameAlias) name属性又はname属性のエイリアスに対応するエラーメッセージが存在する場合は、class属性に指定されたCSSクラス名を追記する。static String
URIの指定方法に応じてURIを組み立て、エンコードしたURIを返す。static String
escapeHtml
(Object s) HTMLエスケープを行う。static String
escapeHtml
(Object s, boolean withHtmlFormat) HTMLエスケープを行う。static String
HTMLエスケープを行う。static String
JavaScriptの文字列として使用する向けにエスケープを行う。static Message
findMessage
(jakarta.servlet.jsp.PageContext pageContext, String name) リクエストスコープに設定されているメッセージリストからプロパティ名でメッセージを検索する。
検索対象のメッセージは、ValidationResultMessage型のみ。static Message
findMessage
(jakarta.servlet.jsp.PageContext pageContext, Set<String> names) リクエストスコープに設定されているメッセージリストからプロパティ名でメッセージを検索する。
検索対象のメッセージは、ValidationResultMessage型のみ。static String
formatDate
(Date date, String pattern) 日付をフォーマットする。static String
formatDateTime
(Date date, String pattern) 日時をフォーマットする。static String
formatValue
(jakarta.servlet.jsp.PageContext pageContext, String name, FormatSpec formatSpec, Object value) 値をフォーマットする。static String
generateUniqueName
(jakarta.servlet.jsp.PageContext pageContext, String tagKey) 画面上のタグのユニークな名前を生成する。
値のフォーマット:"nablarch_<タグを識別するキー><連番>"static String
getCodeLabel
(String labelPattern, String codeId, String value, String optionColumnName) getCommaSeparatedValue
(String value) カンマ区切りの値を分割して返す。カンマ区切りの値を分割して返す。static String
getCspNonce
(jakarta.servlet.jsp.PageContext pageContext) リクエストスコープに格納されているnonceを取得する。取得できなかった場合はnull
を返却するstatic CustomTagConfig
カスタムタグのデフォルト値を取得する。static FormContext
getFormContext
(jakarta.servlet.jsp.PageContext pageContext) ページコンテキストからフォームコンテキストを取得する。getMessages
(jakarta.servlet.jsp.PageContext pageContext) リクエストスコープからメッセージリストを取得する。static Collection<?>
getMultipleValues
(jakarta.servlet.jsp.PageContext pageContext, String name) 多値としてname属性に対応するvalue属性をリクエストパラメータ又は変数スコープから取得する。
取得方法については、getValue(PageContext, String, boolean)
メソッドのJavaDocを参照。static Collection<?>
getMultipleValuesOnScope
(jakarta.servlet.jsp.PageContext pageContext, String name) 多値としてname属性に対応するvalue属性を変数スコープから取得する。
取得方法については、getValue(PageContext, String, boolean)
メソッドのJavaDocを参照。static int
getOrderOfAppearance
(jakarta.servlet.jsp.PageContext pageContext, String tagKey) 画面上のタグの出現順を取得する。static String
getOriginalAttribute
(HtmlAttributes attributes, HtmlAttribute attribute, String separator) 元の属性値の末尾にセパレータを付加した値を取得する。
このメソッドは、属性に値を追記する場合に使用する。static Object
getPropertyFromObject
(Object valueObject, String propertyName) JavaBeans形式のオブジェクトまたはMapからプロパティ名に合致するオブジェクトを取得する。static String
getResourcePathForLanguage
(jakarta.servlet.jsp.PageContext pageContext, String path) 言語対応のリソースパスを取得する。static Object
getSingleValue
(jakarta.servlet.jsp.PageContext pageContext, String name) 単一値としてname属性に対応するvalue属性をリクエストパラメータ又は変数スコープから取得する。static Object
getSingleValueOnScope
(jakarta.servlet.jsp.PageContext pageContext, String name) 単一値としてname属性に対応するvalue属性を変数スコープから取得する。static Object
name属性に対応するvalue属性を取得する。
name属性は、EL式に似た下記のルールにより、オブジェクト階層のアクセスをサポートする。 オブジェクト又はMapのプロパティへのアクセスは、ドット区切りを指定する。 List又は配列の要素へのアクセスは、角括弧(括弧内にインデックスを表す数字)を指定する。
オブジェクト階層のルートにあたるオブジェクトは、下記の順に検索し、最初に見つかった値を使用する。 Servlet APIのページスコープ Servlet APIのリクエストスコープ Servlet APIのリクエストパラメータ(includeRequestParameterがtrueの場合のみ) Servlet APIのセッションスコープstatic boolean
hasCspNonce
(jakarta.servlet.jsp.PageContext pageContext) リクエストスコープにCSP対応用のnonceが保存されているか否か確認する。 nonceが保存されている場合、true
を返却する。static boolean
isConfirmationPage
(jakarta.servlet.jsp.PageContext pageContext) JSPが生成する画面が確認画面であるか否かを判定する。static boolean
jsSupported
(jakarta.servlet.jsp.PageContext pageContext) Javascript使用不可のフラグが設定されていればtrueを返す。 このフラグはKeitaiAccessHandler
によって設定される。static void
overrideUriAttribute
(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, HtmlAttribute attribute, Boolean secure) URIを指定する属性に対して、元のURIをエンコードしたURIで上書く。
エンコード処理は、encodeUri(PageContext, String, Boolean)
に処理を移譲する。static void
作成したタグを出力する。static void
registerOnclickForSubmission
(jakarta.servlet.jsp.PageContext pageContext, String tagName, HtmlAttributes attributes, boolean suppressDefaultSubmit) クリック時のサブミット情報を登録し、JavaScriptを生成する。setSubmissionInfoToFormContext(jakarta.servlet.jsp.PageContext, nablarch.common.web.tag.HtmlAttributes, nablarch.common.web.tag.SubmissionInfo.SubmissionAction, java.lang.String, boolean, java.lang.String, nablarch.common.web.tag.DisplayMethod)
を使ったサブミット情報登録後に呼び出すこと。static void
restoreKeyValueSetFromHidden
(HttpRequest request) nablarch_hidden に保存したキーと値のセットを復元する。static void
setConfirmationPage
(jakarta.servlet.jsp.PageContext pageContext) JSPが生成する画面が確認画面であることを設定する。
このメソッド呼び出し後のJSPでは、入力項目のカスタムタグが確認画面用の出力を行う。static void
setFormContext
(jakarta.servlet.jsp.PageContext pageContext, FormContext formContext) ページコンテキストにフォームコンテキストを設定する。static void
setInputPage
(jakarta.servlet.jsp.PageContext pageContext) JSPが生成する画面が入力画面であることを設定する。
このメソッド呼び出し後のJSPでは、入力項目のカスタムタグが入力画面用の出力を行う。static void
setNameToFormContext
(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes) フォームコンテキストに入力項目のname属性を設定する。
JSPが入力画面の場合のみname属性を設定する。static void
setSubmissionInfoToFormContext
(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, SubmissionInfo.SubmissionAction action, String uri, boolean allowDoubleSubmission, String requestId, DisplayMethod displayMethod) フォームコンテキストにサブミット情報を設定する。static void
setSubmissionInfoToFormContext
(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, SubmissionInfo.SubmissionAction action, String uri, boolean allowDoubleSubmission, String requestId, DisplayMethod displayMethod, String popupWindowName, String popupOption) フォームコンテキストにサブミット情報を設定する。
ポップアップのオプション情報を指定できる。 指定されたオプション情報がnullであった場合には、代わりにデフォルト値を使用する。 引数のオプション情報がnullで、デフォルト値も登録されていない場合は、nullが使用される。 (オプションなし)static String
storeKeyValueSetToHidden
(jakarta.servlet.jsp.PageContext pageContext, String name, Object valueObject, List<String> keyNames, String namePrefix) オブジェクトに紐付くキーと値を nablarch_hidden に保存する。
保存した値は戻り値の文字列が引数 name で指定したキーでリクエストパラメータに入っていれば、復元できる。
値の保存は単純なカンマ区切りで行うため、値の中にカンマが含まれている場合は保持できない。
-
Field Details
-
PARAM_VALUES_KEY_PREFIX
NablarchTagHandler で展開する際に使用する、許容する値のリストを保持するキー名のプレフィクス- See Also:
-
VAR_NAMES_KEY
NablarchTagHandler で展開する属性名のリストのキー名- See Also:
-
PARAM_NAMES_KEY_PREFIX
NablarchTagHandler で展開する際に使用する、許容する名称のリストを保持するキー名のプレフィクス- See Also:
-
-
Method Details
-
getCommaSeparatedValue
カンマ区切りの値を分割して返す。- Parameters:
value
- カンマ区切りの値- Returns:
- カンマ区切りの値を分割した値
-
getCommaSeparatedValueAsList
カンマ区切りの値を分割して返す。- Parameters:
value
- カンマ区切りの値- Returns:
- カンマ区切りの値を分割した値
-
getCustomTagConfig
カスタムタグのデフォルト値を取得する。- Returns:
- カスタムタグのデフォルト値
-
print
@Published(tag="architect") public static void print(jakarta.servlet.jsp.PageContext pageContext, String content) throws jakarta.servlet.jsp.JspException 作成したタグを出力する。- Parameters:
pageContext
- ページコンテキストcontent
- コンテンツ- Throws:
jakarta.servlet.jsp.JspException
- JSP例外
-
createStartTag
開始タグを作成する。- Parameters:
tagName
- タグ名attributes
- 属性- Returns:
- オープンタグ
-
createEndTag
終了タグを作成する。- Parameters:
tagName
- タグ名- Returns:
- 終了タグ
-
createTagWithBody
ボディを持つタグを作成する。- Parameters:
tagName
- タグ名attributes
- 属性body
- ボディ- Returns:
- ボディを持つタグ
-
createTagWithoutBody
ボディを持たないタグを作成する。- Parameters:
tagName
- タグ名attributes
- 属性- Returns:
- ボディを持たないタグ
-
createHiddenTag
hiddenタグを作成する。- Parameters:
name
- name属性value
- value属性- Returns:
- hiddenタグ
-
createLabelTag
public static String createLabelTag(String type, String content, String forAttribute, String cssClass) labelタグを作成する。- Parameters:
type
- labelタグが対応するinputタグのtype属性content
- labelタグの内容forAttribute
- for属性。未指定の場合はnullcssClass
- CSSクラス名- Returns:
- labelタグ
-
createScriptTag
public static String createScriptTag(jakarta.servlet.jsp.PageContext pageContext, String javaScript) JavaScriptを含めるscriptタグを作成する。 scriptタグのtype属性に"text/javascript"を指定する。 さらに、CustomTagConfig.getScriptBodyPrefix()
とCustomTagConfig.getScriptBodySuffix()
を 指定されたJavaScriptの前後に付加する。 CustomTagConfigのデフォルト値を使用する場合のscriptタグの作成例を下記に示す。<script type="text/javascript"> //<![CDATA[ (ここに指定されたJavaScriptがくる) //]]> </script>
また、セキュアハンドラでnonceが生成されていた場合は、scriptタグにnonce属性を自動で付加する。
<script type="text/javascript" nonce="[セキュアハンドラで生成したnonce]"> //<![CDATA[ (ここに指定されたJavaScriptがくる) //]]> </script>
- Parameters:
pageContext
- ページコンテキストjavaScript
- scriptタグのボディに指定するJavaScript- Returns:
- scriptタグ
-
hasCspNonce
public static boolean hasCspNonce(jakarta.servlet.jsp.PageContext pageContext) リクエストスコープにCSP対応用のnonceが保存されているか否か確認する。 nonceが保存されている場合、true
を返却する。- Parameters:
pageContext
- ページコンテキスト- Returns:
- リクエストスコープにCSP対応用のnonceが保存されている場合
true
-
getCspNonce
リクエストスコープに格納されているnonceを取得する。取得できなかった場合はnull
を返却する- Parameters:
pageContext
- ページコンテキスト- Returns:
- リクエストスコープに格納されているnonce
-
generateUniqueName
画面上のタグのユニークな名前を生成する。
値のフォーマット:"nablarch_<タグを識別するキー><連番>"- Parameters:
pageContext
- ページコンテキストtagKey
- タグを識別するキー- Returns:
- 画面上のタグのユニークな名前
-
getOrderOfAppearance
画面上のタグの出現順を取得する。- Parameters:
pageContext
- ページコンテキストtagKey
- タグを識別するキー- Returns:
- 画面上のタグの出現順
-
createFormatSpec
"データタイプ{パターン}"形式のフォーマット文字列からFormatSpec
を生成する。 パターンの付加情報を区切りセパレータには、CustomTagConfig.getPatternSeparator()
を指定する。- Parameters:
format
- "データタイプ{パターン}"形式のフォーマット文字列- Returns:
FormatSpec
-
formatValue
public static String formatValue(jakarta.servlet.jsp.PageContext pageContext, String name, FormatSpec formatSpec, Object value) 値をフォーマットする。フォーマットは"データタイプ{パターン}"形式で指定する。 フレームワークがデフォルトでサポートしているフォーマットを下記に示す。 yyyymmdd: 年月日のフォーマット。 値はyyyyMMdd形式の文字列を指定する。 パターンにはjava.text.SimpleDateFormatが規定している構文を指定する。 パターン文字には、y(年)、M(月)、d(月における日)のみ指定可能。 パターン文字列を省略した場合は
CustomTagConfig
に設定されたデフォルトのパターンを 使用する。 また、パターンの後に区切り文字"|"を使用してフォーマットのロケールを付加することができる。 ロケールを明示的に指定しない場合は、ThreadContextのロケール設定値を使用する。 ThreadContextも設定されていない場合は、システムデフォルトロケール値を使用する。 例: yyyymmdd --> デフォルトのパターンとThreadContext
に設定されたロケールを使用する。 yyyymmdd{yyyy/MMM/dd} --> 明示的にパターンを指定し、ThreadContext
に設定されたロケールを使用する yyyymmdd{|ja} --> デフォルトのパターンを使用し、ロケールのみ指定する場合。 yyyymmdd{yyyy年MM月d日(E)|ja} --> パターン、ロケールの両方を明示的に指定する場合。 dateTime: 値はjava.util.Date型を指定する。 パターンにはjava.text.SimpleDateFormatが規定している構文を指定する。 パターンには区切り文字"|"を使用してロケールおよびタイムゾーンを付加することができる。 ロケールおよびタイムゾーンはこの順番でパターンの末尾に付加する。CustomTagConfig
を使用して、パターンのデフォルト値の設定と、 区切り文字"|"の変更を行うことができる。 タイムゾーンが指定されなかった場合はThreadContext
に設定されたタイムゾーンが使用される。 例: dateTime --> デフォルトのパターンとThreadContext
に設定されたロケールおよびタイムゾーンを使用する場合。 dateTime{|ja|Asia/Tokyo} --> デフォルトのパターンを使用し、ロケールおよびタイムゾーンのみ指定する場合。 dateTime{yyyy年MMM月d日(E) a hh:mm|ja|America/New_York} --> パターン、ロケール、タイムゾーンを全て指定する場合。 dateTime{yy/MM/dd HH:mm:ss} -->ThreadContext
に設定されたロケールとタイムゾーンを使用し、パターンのみ指定する場合。 dateTime{yy/MM/dd HH:mm:ss||Asia/Tokyo} --> パターンとタイムゾーンを指定する場合。 decimal: 10進数のフォーマット。 値はjava.lang.Number型又は数字の文字列を指定する。 数字の文字列の場合は、カンマを取り除いた後でフォーマットする。 パターンにはjava.text.DecimalFormatが規定している構文を指定する。 パターンには区切り文字"|"を使用して言語を指定することができる。 言語はパターンの末尾に付加する。CustomTagConfig
を使用して、区切り文字"|"の変更を行うことができる。 言語が指定されなかった場合はThreadContext
に設定された言語が使用される。 例: decimal{###,###,###.000} -->ThreadContext
に設定された言語を使用し、パターンのみ指定する場合。 decimal{###,###,###.000|ja} --> パターンと言語を指定する場合。 フォーマットは、ValueFormatter
を実装したクラスが行う。 実装したクラスをリポジトリに登録することでフォーマットを変更することができる。 リポジトリへの登録は、Map型でデータタイプ名をキーに、ValueFormatter
を実装したクラスを値に指定する。 フレームワークがデフォルトでサポートしているフォーマットに対する設定例を下記に示す。 フォーマッタのマップは、"valueFormatters"という名前でリポジトリに登録する。 <map name="valueFormatters"> <entry key="yyyymmdd"> <value-component class="nablarch.common.web.tag.YYYYMMDDFormatter" /> </entry> <entry key="dateTime"> <value-component class="nablarch.common.web.tag.DateTimeFormatter" /> </entry> <entry key="decimal"> <value-component class="nablarch.common.web.tag.DecimalFormatter" /> </entry> </map> リポジトリにフォーマッタが登録されていない場合は、フレームワークがデフォルトでサポートしている フォーマットを使用する。 フォーマットで例外が発生した場合は、指定された値のtoStringメソッドを呼び出した結果を返す。- Parameters:
pageContext
- ページコンテキストname
- name属性の値formatSpec
- valueFormat属性の値value
- 値- Returns:
- フォーマット済みの値
-
formatDate
日付をフォーマットする。値はyyyyMMdd形式またはパターン形式の文字列を指定する。 パターンにはjava.text.SimpleDateFormatが規定している構文を指定する。 パターン文字には、y(年)、M(月)、d(月における日)のみ指定可能。 パターン文字列を省略した場合は カスタムタグのデフォルト値の設定 に設定されたデフォルトのパターンが使用される。 また、パターンの後に区切り文字”|”を使用してフォーマットのロケールを付加することができる。 ロケールを明示的に指定しない場合は、
ThreadContext
のロケール設定値を使用する。 例: null もしくは 空文字 --> デフォルトのパターンとThreadContext
に設定されたロケールを使用する場合。 "yyyymmdd" --> デフォルトのパターンとThreadContext
に設定されたロケールを使用する。 "yyyymmdd{yyyy/MM/dd}" --> 明示的に指定されたパターンと、ThreadContext
に設定されたロケールを使用する。 "yyyymmdd{|ja}" --> デフォルトのパターンを使用し、ロケールのみ指定する場合。 "yyyymmdd{yyyy年MM月d日|ja}" --> パターン、ロケールの両方を明示的に指定する場合。- Parameters:
date
- 日付pattern
- フォーマット書式文字列- Returns:
- フォーマット済み文字
-
formatDateTime
日時をフォーマットする。日時のフォーマット。 値はjava.util.Date型を指定する。 パターンにはjava.text.SimpleDateFormatが規定している構文を指定する。 パターンには区切り文字"|"を使用してロケールおよびタイムゾーンを付加することができる。 ロケールおよびタイムゾーンはこの順番でパターンの末尾に付加する。
CustomTagConfig
を使用して、パターンのデフォルト値の設定と、 区切り文字"|"の変更を行うことができる。 タイムゾーンが指定されなかった場合はThreadContext
に設定されたタイムゾーンが使用される。 例: null もしくは 空文字 --> デフォルトのパターンとThreadContext
に設定されたロケールおよびタイムゾーンを使用する場合。 "|ja|Asia/Tokyo" --> デフォルトのパターンを使用し、ロケールおよびタイムゾーンのみ指定する場合。 "yyyy年MMM月d日(E) a hh:mm|ja|America/New_York" --> パターン、ロケール、タイムゾーンを全て指定する場合。 "yy/MM/dd HH:mm:ss" -->ThreadContext
に設定されたロケールとタイムゾーンを使用し、パターンのみ指定する場合。 "yy/MM/dd HH:mm:ss||Asia/Tokyo" --> パターンとタイムゾーンを指定する場合。- Parameters:
date
- 日時pattern
- フォーマット書式文字列- Returns:
- フォーマット済み文字
-
overrideUriAttribute
public static void overrideUriAttribute(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, HtmlAttribute attribute, Boolean secure) URIを指定する属性に対して、元のURIをエンコードしたURIで上書く。
エンコード処理は、encodeUri(PageContext, String, Boolean)
に処理を移譲する。- Parameters:
pageContext
- ページコンテキストattributes
- 属性attribute
- 対象とする属性secure
- httpsにする場合はtrue、しない場合はfalse。指定しない場合はnull
-
encodeUri
public static String encodeUri(jakarta.servlet.jsp.PageContext pageContext, String uri, Boolean secure) throws IllegalArgumentException, IllegalStateException URIの指定方法に応じてURIを組み立て、エンコードしたURIを返す。URIは下記のいずれかの方法で指定する。 絶対URL: http又はhttpsから始まるパスを指定する。 他システム連携などでアプリケーションとホストが異なるURIを指定する場合に使用する。 指定されたパスをそのまま使用する。 コンテキストからの相対パス /(スラッシュ)から始まるパスを指定する。 アプリケーション内のパスを指定する場合に使用する。 指定されたパスの先頭にコンテキストパスを付加して使用する。 現在のパスからの相対パス /(スラッシュ)から始まらないパス(絶対URLを除く)を指定する。 アプリケーション内のパスを指定する場合に使用する。 指定されたパスをそのまま使用する。 コンテキストからの相対パスを指定している場合は、secure引数を指定することでURIのhttpsとhttpを切り替える。 secure引数が指定された場合は、カスタムタグのデフォルト値(ポート番号、ホスト)とコンテキストパスを使用してURIを組み立てる。 URIが/(スラッシュ)から始まる場合のみ、コンテキストパスを付加する。 エンコード前のURIが絶対URLでない場合は
getResourcePathForLanguage(PageContext, String)
メソッドを呼び出し、 言語対応のリソースパスに変換する。 エンコード処理は、HttpServletResponse.encodeURL(String)
に処理を移譲する。- Parameters:
pageContext
- ページコンテキストuri
- URIsecure
- httpsにする場合はtrue、しない場合はfalse。指定しない場合はnull- Returns:
- エンコード済みのURI
- Throws:
IllegalArgumentException
- secure引数が指定されたにも関わらず、絶対URL又は現在のパスからの相対パスが指定された場合IllegalStateException
- secure引数が指定されたにも関わらず、ホスト(カスタムタグのデフォルト値)が設定されていない場合
-
getResourcePathForLanguage
public static String getResourcePathForLanguage(jakarta.servlet.jsp.PageContext pageContext, String path) 言語対応のリソースパスを取得する。CustomTagConfig
に指定されたResourcePathRule
に処理を委譲する。- Parameters:
pageContext
- ページコンテキストpath
- リソースパス- Returns:
- 言語対応のリソースパス
-
registerOnclickForSubmission
public static void registerOnclickForSubmission(jakarta.servlet.jsp.PageContext pageContext, String tagName, HtmlAttributes attributes, boolean suppressDefaultSubmit) クリック時のサブミット情報を登録し、JavaScriptを生成する。setSubmissionInfoToFormContext(jakarta.servlet.jsp.PageContext, nablarch.common.web.tag.HtmlAttributes, nablarch.common.web.tag.SubmissionInfo.SubmissionAction, java.lang.String, boolean, java.lang.String, nablarch.common.web.tag.DisplayMethod)
を使ったサブミット情報登録後に呼び出すこと。 リクエストスコープにCSP対応用のnonceが保存されているか否かで動作が変わる。 ・CSP対応用のnonceが保存されていた場合 ・FormTag
が生成するscriptタグの一部として出力する ・本メソッド実行時には出力せずフォームコンテキストへの登録のみとし、FormTag
の処理でためこんだスクリプトを一括で出力する ・CSP対応用のnonceが保存されていない場合 ・対象のタグのonclick属性としてイベントハンドラを出力する なお、いずれの場合も属性にonclickが指定されている場合、またはsuppressDefaultSubmit
プロパティがtrue
の場合はスクリプトを生成しない。- Parameters:
pageContext
- ページコンテキストtagName
- クリック対象のタグ名attributes
- 属性suppressDefaultSubmit
- Nablarchのデフォルトのsubmit関数呼び出しを抑制するか否か。true
の場合は抑制する
-
editClassAttributeForError
public static String editClassAttributeForError(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, String cssClass, Set<String> nameAlias) name属性又はname属性のエイリアスに対応するエラーメッセージが存在する場合は、class属性に指定されたCSSクラス名を追記する。- Parameters:
pageContext
- ページコンテキストattributes
- 属性cssClass
- CSSクラス名nameAlias
- name属性のエイリアス- Returns:
- 追記したCSSクラス名。追記しなかった場合はnull
-
editClassAttribute
public static void editClassAttribute(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, String cssClass) class属性を編集する。指定されたCSSクラス名を元の値に付加する。 既に指定されたCSSクラス名が含まれている場合は付加しない。
- Parameters:
pageContext
- ページコンテキストattributes
- 属性cssClass
- 追記するCSSクラス名
-
getOriginalAttribute
public static String getOriginalAttribute(HtmlAttributes attributes, HtmlAttribute attribute, String separator) 元の属性値の末尾にセパレータを付加した値を取得する。
このメソッドは、属性に値を追記する場合に使用する。- Parameters:
attributes
- 属性attribute
- 値を取得する属性separator
- セパレータ- Returns:
- 元の属性値の末尾にセパレータを付加した値。属性値が未指定の場合は空文字
-
setFormContext
public static void setFormContext(jakarta.servlet.jsp.PageContext pageContext, FormContext formContext) ページコンテキストにフォームコンテキストを設定する。 フォームのname属性が重複している場合は例外を送出する。- Parameters:
pageContext
- ページコンテキストformContext
- フォームコンテキスト
-
getFormContext
ページコンテキストからフォームコンテキストを取得する。- Parameters:
pageContext
- ページコンテキスト- Returns:
- フォームコンテキスト
-
setNameToFormContext
public static void setNameToFormContext(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes) フォームコンテキストに入力項目のname属性を設定する。
JSPが入力画面の場合のみname属性を設定する。- Parameters:
pageContext
- ページコンテキストattributes
- 属性
-
setSubmissionInfoToFormContext
public static void setSubmissionInfoToFormContext(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, SubmissionInfo.SubmissionAction action, String uri, boolean allowDoubleSubmission, String requestId, DisplayMethod displayMethod) フォームコンテキストにサブミット情報を設定する。- Parameters:
pageContext
- ページコンテキストattributes
- 属性action
- サブミット時の動作uri
- サブミット先のURIallowDoubleSubmission
- 二重サブミットを許可するか否かrequestId
- サブミット時のリクエストIDdisplayMethod
- 表示制御方法
-
setSubmissionInfoToFormContext
public static void setSubmissionInfoToFormContext(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, SubmissionInfo.SubmissionAction action, String uri, boolean allowDoubleSubmission, String requestId, DisplayMethod displayMethod, String popupWindowName, String popupOption) フォームコンテキストにサブミット情報を設定する。
ポップアップのオプション情報を指定できる。 指定されたオプション情報がnullであった場合には、代わりにデフォルト値を使用する。 引数のオプション情報がnullで、デフォルト値も登録されていない場合は、nullが使用される。 (オプションなし)- Parameters:
pageContext
- ページコンテキストattributes
- 属性action
- サブミット時の動作uri
- サブミット先のURIallowDoubleSubmission
- 二重サブミットを許可するか否かrequestId
- サブミット時のリクエストIDdisplayMethod
- 表示制御方法popupWindowName
- ポップアップのウィンドウ名(nullの場合、デフォルト値を使用)popupOption
- ポップアップのオプション情報(nullの場合、デフォルト値を使用)- See Also:
-
getSingleValueOnScope
public static Object getSingleValueOnScope(jakarta.servlet.jsp.PageContext pageContext, String name) 単一値としてname属性に対応するvalue属性を変数スコープから取得する。単一値でない場合はINFOレベルでログ出力しnullを返す。 取得方法については、
getValue(PageContext, String, boolean)
メソッドのJavaDocを参照。- Parameters:
pageContext
- ページコンテキストname
- name属性- Returns:
- value属性。存在しない場合はnull
-
getSingleValue
単一値としてname属性に対応するvalue属性をリクエストパラメータ又は変数スコープから取得する。単一値でない場合はINFOレベルでログ出力しnullを返す。 取得方法については、
getValue(PageContext, String, boolean)
メソッドのJavaDocを参照。- Parameters:
pageContext
- ページコンテキストname
- name属性- Returns:
- value属性。存在しない場合はnull
-
getMultipleValuesOnScope
public static Collection<?> getMultipleValuesOnScope(jakarta.servlet.jsp.PageContext pageContext, String name) 多値としてname属性に対応するvalue属性を変数スコープから取得する。
取得方法については、getValue(PageContext, String, boolean)
メソッドのJavaDocを参照。- Parameters:
pageContext
- ページコンテキストname
- name属性- Returns:
- value属性。存在しない場合は空のリスト
-
getMultipleValues
public static Collection<?> getMultipleValues(jakarta.servlet.jsp.PageContext pageContext, String name) 多値としてname属性に対応するvalue属性をリクエストパラメータ又は変数スコープから取得する。
取得方法については、getValue(PageContext, String, boolean)
メソッドのJavaDocを参照。- Parameters:
pageContext
- ページコンテキストname
- name属性- Returns:
- value属性。存在しない場合は空のリスト
-
getValue
public static Object getValue(jakarta.servlet.jsp.PageContext pageContext, String name, boolean includeRequestParameter) name属性に対応するvalue属性を取得する。
name属性は、EL式に似た下記のルールにより、オブジェクト階層のアクセスをサポートする。- オブジェクト又はMapのプロパティへのアクセスは、ドット区切りを指定する。
- List又は配列の要素へのアクセスは、角括弧(括弧内にインデックスを表す数字)を指定する。
オブジェクト階層のルートにあたるオブジェクトは、下記の順に検索し、最初に見つかった値を使用する。- Servlet APIのページスコープ
- Servlet APIのリクエストスコープ
- Servlet APIのリクエストパラメータ(includeRequestParameterがtrueの場合のみ)
- Servlet APIのセッションスコープ
- Parameters:
pageContext
- ページコンテキストname
- name属性includeRequestParameter
- 取得先にリクエストパラメータを含める場合はtrue- Returns:
- value属性。存在しない場合はnull
- See Also:
-
chooseObjectOrProperty
getValue() メソッドの返すオブジェクトについて、オブジェクトそのものまたはプロパティを選択して返す
基本的には指定されたスコープのname属性のプロパティを取得するが、 ただし、splitName が1つの場合、特別にオブジェクトそのものを返す。- Parameters:
obj
- プロパティを取得する元になるオブジェクトsplitName
- ドットで区切ったname属性の値- Returns:
- splitName が1つの場合、特別にオブジェクト、それ以外はオブジェクトから splitName の最後の文字列と一致するプロパティ
-
contains
選択項目において選択した値に、選択肢の値が含まれているかを判定する。選択した値と選択肢の値は、ともに
Object.toString()
してから等しいか判定する。 選択項目の選択状態を判定する際に使用する。- Parameters:
values
- 選択した値value
- 選択肢の値- Returns:
- 選択した値に選択肢の値が含まれている場合はtrue
-
escapeHtml
HTMLエスケープを行う。このメソッドは、
escapeHtml(Object, boolean)
に処理を委譲し、 セキュリティ上問題のあるHTMLエスケープ処理のみを行う。 このメソッドでは、改行変換と半角スペース変換を行わない。 このメソッドは、HTMLタグの属性値に対するHTMLエスケープに使用する。- Parameters:
s
- 文字列- Returns:
- HTMLエスケープ後の文字列
-
escapeHtml
HTMLエスケープを行う。セキュリティ上問題のある下記文字の変換を行う。 & -> & < -> < > -> > " -> &034; ' -> &039; withHtmlFormatにtrueが指定された場合は、さらに下記の変換を行う。 " "(半角スペース) -> \n、\r、\r\n -> brタグ
- Parameters:
s
- 文字列withHtmlFormat
- 改行変換と半角スペース変換を行う場合はtrue- Returns:
- HTMLエスケープ後の文字列
-
escapeHtml
@Published(tag="architect") public static String escapeHtml(Object s, boolean withHtmlFormat, List<String> safeTags, List<String> safeAttributes) HTMLエスケープを行う。セキュリティ上問題のある下記文字の変換を行う。 & -> & < -> < > -> > " -> &034; ' -> &039; withHtmlFormatにtrueが指定された場合は、さらに下記の変換を行う。 " "(半角スペース) -> \n、\r、\r\n -> brタグ
- Parameters:
s
- 文字列withHtmlFormat
- 改行変換と半角スペース変換を行う場合はtruesafeTags
- エスケープ対象外のタグsafeAttributes
- エスケープ対象外のタグの中で使用することができる属性。 (ここに無い属性が使用されていた場合は、エスケープ対象外のタグでも、 エスケープされる。)- Returns:
- HTMLエスケープ後の文字列
-
addStaticContentVersion
指定されたURIにGETパラメータで静的リソースのバージョンを付加する。 追加するGETパラメータの形式は以下の通り。KEY:
システムリポジトリから取得した静的リソースバージョンがnullや空文字列の場合には、GETパラメータは付加しない。 設定ファイル(configファイル)への静的リソースバージョンの設定例:ExecutionContext.FW_PREFIX
+ "static_content_version" VALUE:システムリポジトリ(SystemRepository
)より取得した静的リソースのバージョン(取得時のキーは、static_content_version)static_content_version=1.0
- Parameters:
uri
- URI- Returns:
- 静的リソースのバージョンをGETパラメータとして付加したURI
-
escapeJavaScriptString
JavaScriptの文字列として使用する向けにエスケープを行う。HTMLエスケープは下記の変換を行う。 " -> \" ' -> \' \ -> \\
- Parameters:
s
- 文字列- Returns:
- エスケープ後の文字列
-
getMessages
リクエストスコープからメッセージリストを取得する。- Parameters:
pageContext
- ページコンテキスト- Returns:
- メッセージリストまたは
null
-
findMessage
リクエストスコープに設定されているメッセージリストからプロパティ名でメッセージを検索する。
検索対象のメッセージは、ValidationResultMessage型のみ。- Parameters:
pageContext
- ページコンテキストname
- プロパティ名- Returns:
- メッセージ。見つからない場合はnull
-
findMessage
リクエストスコープに設定されているメッセージリストからプロパティ名でメッセージを検索する。
検索対象のメッセージは、ValidationResultMessage型のみ。- Parameters:
pageContext
- ページコンテキストnames
- プロパティ名- Returns:
- メッセージ。見つからない場合はnull
-
setConfirmationPage
public static void setConfirmationPage(jakarta.servlet.jsp.PageContext pageContext) JSPが生成する画面が確認画面であることを設定する。
このメソッド呼び出し後のJSPでは、入力項目のカスタムタグが確認画面用の出力を行う。- Parameters:
pageContext
- ページコンテキスト
-
setInputPage
public static void setInputPage(jakarta.servlet.jsp.PageContext pageContext) JSPが生成する画面が入力画面であることを設定する。
このメソッド呼び出し後のJSPでは、入力項目のカスタムタグが入力画面用の出力を行う。- Parameters:
pageContext
- ページコンテキスト
-
isConfirmationPage
public static boolean isConfirmationPage(jakarta.servlet.jsp.PageContext pageContext) JSPが生成する画面が確認画面であるか否かを判定する。- Parameters:
pageContext
- ページコンテキスト- Returns:
- 確認画面の場合はtrue、確認画面でない場合はfalse
-
getCodeLabel
public static String getCodeLabel(String labelPattern, String codeId, String value, String optionColumnName) - Parameters:
labelPattern
- ラベルを整形するパターン。 プレースホルダを下記に示す。$NAME$: コード値に対応するコード名称 $SHORTNAME$: コード値に対応するコードの略称 $OPTIONALNAME$: コード値に対応するコードのオプション名称 $OPTIONALNAME$を使用する場合は、optionColumnName引数の指定が必須となる。 $VALUE$: コード値
codeId
- コードIDvalue
- コード値optionColumnName
- 取得するオプション名称のカラム名- Returns:
- コード値に対応するラベル
-
jsSupported
public static boolean jsSupported(jakarta.servlet.jsp.PageContext pageContext) Javascript使用不可のフラグが設定されていればtrueを返す。 このフラグはKeitaiAccessHandler
によって設定される。- Parameters:
pageContext
- ページコンテキスト- Returns:
- Javascript使用不可のフラグが設定されていればtrue
- See Also:
-
storeKeyValueSetToHidden
public static String storeKeyValueSetToHidden(jakarta.servlet.jsp.PageContext pageContext, String name, Object valueObject, List<String> keyNames, String namePrefix) オブジェクトに紐付くキーと値を nablarch_hidden に保存する。
保存した値は戻り値の文字列が引数 name で指定したキーでリクエストパラメータに入っていれば、復元できる。
値の保存は単純なカンマ区切りで行うため、値の中にカンマが含まれている場合は保持できない。- Parameters:
pageContext
- ページコンテキストname
- 保存する名称(リクエストパラメータ)valueObject
- 保存する値を保持するオブジェクトkeyNames
- 保存する値のキー名のリストnamePrefix
- 保存する値を保持するオブジェクトを表すプレフィクス- Returns:
- 復元時に使用する、リクエストパラメータに保持する文字列
-
getPropertyFromObject
JavaBeans形式のオブジェクトまたはMapからプロパティ名に合致するオブジェクトを取得する。- Parameters:
valueObject
- 取得対象のオブジェクトpropertyName
- プロパティ名- Returns:
- プロパティ名に合致するオブジェクト
-
restoreKeyValueSetFromHidden
nablarch_hidden に保存したキーと値のセットを復元する。- Parameters:
request
- HttpRequest
-
createCompositeKeyValueList
public static List<String> createCompositeKeyValueList(jakarta.servlet.jsp.PageContext pageContext, String prefix, List<String> keyNames) リクエストスコープまたはパラメータに入った値からマルチキーを復元する。- Parameters:
pageContext
- ページコンテキストprefix
- プレフィクスkeyNames
- マルチキーのキー名のリスト- Returns:
- 復元したマルチキーのリスト
-