Package nablarch.common.web.tag
Class TagUtil
java.lang.Object
nablarch.common.web.tag.TagUtil
カスタムタグの作成を助けるユーティリティ。
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptionstatic String指定されたURIにGETパラメータで静的リソースのバージョンを付加する。static ObjectchooseObjectOrProperty(Object obj, String[] splitName) getValue() メソッドの返すオブジェクトについて、オブジェクトそのものまたはプロパティを選択して返す
基本的には指定されたスコープのname属性のプロパティを取得するが、 ただし、splitName が1つの場合、特別にオブジェクトそのものを返す。static booleancontains(Collection<?> values, Object value) 選択項目において選択した値に、選択肢の値が含まれているかを判定する。createCompositeKeyValueList(jakarta.servlet.jsp.PageContext pageContext, String prefix, List<String> keyNames) リクエストスコープまたはパラメータに入った値からマルチキーを復元する。static StringcreateEndTag(String tagName) 終了タグを作成する。static FormatSpeccreateFormatSpec(String format) "データタイプ{パターン}"形式のフォーマット文字列からFormatSpecを生成する。static StringcreateHiddenTag(String name, String value) hiddenタグを作成する。static StringcreateLabelTag(String type, String content, String forAttribute, String cssClass) labelタグを作成する。static StringcreateScriptTag(jakarta.servlet.jsp.PageContext pageContext, String javaScript) JavaScriptを含めるscriptタグを作成する。static StringcreateStartTag(String tagName, HtmlAttributes attributes) 開始タグを作成する。static StringcreateTagWithBody(String tagName, HtmlAttributes attributes, String body) ボディを持つタグを作成する。static StringcreateTagWithoutBody(String tagName, HtmlAttributes attributes) ボディを持たないタグを作成する。static voideditClassAttribute(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, String cssClass) class属性を編集する。static StringeditClassAttributeForError(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, String cssClass, Set<String> nameAlias) name属性又はname属性のエイリアスに対応するエラーメッセージが存在する場合は、class属性に指定されたCSSクラス名を追記する。static StringURIの指定方法に応じてURIを組み立て、エンコードしたURIを返す。static StringescapeHtml(Object s) HTMLエスケープを行う。static StringescapeHtml(Object s, boolean withHtmlFormat) HTMLエスケープを行う。static StringHTMLエスケープを行う。static StringJavaScriptの文字列として使用する向けにエスケープを行う。static MessagefindMessage(jakarta.servlet.jsp.PageContext pageContext, String name) リクエストスコープに設定されているメッセージリストからプロパティ名でメッセージを検索する。
検索対象のメッセージは、ValidationResultMessage型のみ。static MessagefindMessage(jakarta.servlet.jsp.PageContext pageContext, Set<String> names) リクエストスコープに設定されているメッセージリストからプロパティ名でメッセージを検索する。
検索対象のメッセージは、ValidationResultMessage型のみ。static StringformatDate(Date date, String pattern) 日付をフォーマットする。static StringformatDateTime(Date date, String pattern) 日時をフォーマットする。static StringformatValue(jakarta.servlet.jsp.PageContext pageContext, String name, FormatSpec formatSpec, Object value) 値をフォーマットする。static StringgenerateUniqueName(jakarta.servlet.jsp.PageContext pageContext, String tagKey) 画面上のタグのユニークな名前を生成する。
値のフォーマット:"nablarch_<タグを識別するキー><連番>"static StringgetCodeLabel(String labelPattern, String codeId, String value, String optionColumnName) getCommaSeparatedValue(String value) カンマ区切りの値を分割して返す。カンマ区切りの値を分割して返す。static StringgetCspNonce(jakarta.servlet.jsp.PageContext pageContext) リクエストスコープに格納されているnonceを取得する。取得できなかった場合はnullを返却するstatic CustomTagConfigカスタムタグのデフォルト値を取得する。static FormContextgetFormContext(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 intgetOrderOfAppearance(jakarta.servlet.jsp.PageContext pageContext, String tagKey) 画面上のタグの出現順を取得する。static StringgetOriginalAttribute(HtmlAttributes attributes, HtmlAttribute attribute, String separator) 元の属性値の末尾にセパレータを付加した値を取得する。
このメソッドは、属性に値を追記する場合に使用する。static ObjectgetPropertyFromObject(Object valueObject, String propertyName) JavaBeans形式のオブジェクトまたはMapからプロパティ名に合致するオブジェクトを取得する。static StringgetResourcePathForLanguage(jakarta.servlet.jsp.PageContext pageContext, String path) 言語対応のリソースパスを取得する。static ObjectgetSingleValue(jakarta.servlet.jsp.PageContext pageContext, String name) 単一値としてname属性に対応するvalue属性をリクエストパラメータ又は変数スコープから取得する。static ObjectgetSingleValueOnScope(jakarta.servlet.jsp.PageContext pageContext, String name) 単一値としてname属性に対応するvalue属性を変数スコープから取得する。static Objectname属性に対応するvalue属性を取得する。
name属性は、EL式に似た下記のルールにより、オブジェクト階層のアクセスをサポートする。 オブジェクト又はMapのプロパティへのアクセスは、ドット区切りを指定する。 List又は配列の要素へのアクセスは、角括弧(括弧内にインデックスを表す数字)を指定する。
オブジェクト階層のルートにあたるオブジェクトは、下記の順に検索し、最初に見つかった値を使用する。 Servlet APIのページスコープ Servlet APIのリクエストスコープ Servlet APIのリクエストパラメータ(includeRequestParameterがtrueの場合のみ) Servlet APIのセッションスコープstatic booleanhasCspNonce(jakarta.servlet.jsp.PageContext pageContext) リクエストスコープにCSP対応用のnonceが保存されているか否か確認する。 nonceが保存されている場合、trueを返却する。static booleanisConfirmationPage(jakarta.servlet.jsp.PageContext pageContext) JSPが生成する画面が確認画面であるか否かを判定する。static booleanjsSupported(jakarta.servlet.jsp.PageContext pageContext) Javascript使用不可のフラグが設定されていればtrueを返す。 このフラグはKeitaiAccessHandlerによって設定される。static voidoverrideUriAttribute(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, HtmlAttribute attribute, Boolean secure) URIを指定する属性に対して、元のURIをエンコードしたURIで上書く。
エンコード処理は、encodeUri(PageContext, String, Boolean)に処理を移譲する。static void作成したタグを出力する。static voidregisterOnclickForSubmission(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 voidrestoreKeyValueSetFromHidden(HttpRequest request) nablarch_hidden に保存したキーと値のセットを復元する。static voidsetConfirmationPage(jakarta.servlet.jsp.PageContext pageContext) JSPが生成する画面が確認画面であることを設定する。
このメソッド呼び出し後のJSPでは、入力項目のカスタムタグが確認画面用の出力を行う。static voidsetFormContext(jakarta.servlet.jsp.PageContext pageContext, FormContext formContext) ページコンテキストにフォームコンテキストを設定する。static voidsetInputPage(jakarta.servlet.jsp.PageContext pageContext) JSPが生成する画面が入力画面であることを設定する。
このメソッド呼び出し後のJSPでは、入力項目のカスタムタグが入力画面用の出力を行う。static voidsetNameToFormContext(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes) フォームコンテキストに入力項目のname属性を設定する。
JSPが入力画面の場合のみname属性を設定する。static voidsetSubmissionInfoToFormContext(jakarta.servlet.jsp.PageContext pageContext, HtmlAttributes attributes, SubmissionInfo.SubmissionAction action, String uri, boolean allowDoubleSubmission, String requestId, DisplayMethod displayMethod) フォームコンテキストにサブミット情報を設定する。static voidsetSubmissionInfoToFormContext(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 StringstoreKeyValueSetToHidden(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:
- 復元したマルチキーのリスト
-