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