Package nablarch.common.web
Class HtmlTagUtil
java.lang.Object
nablarch.common.web.HtmlTagUtil
HTMLタグの作成、編集に必要となる共通機能を提供するユーティリティ。
-
Method Summary
Modifier and TypeMethodDescriptionstatic String
escapeHtml
(Object s) HTMLエスケープを行う。static String
escapeHtml
(Object s, boolean withHtmlFormat) HTMLエスケープ及び半角スペースと改行の変換を行う。static String
HTMLエスケープ、半角スペース・改行の変換を行う。 HTMLエスケープ対象外のタグを指定した場合は、指定したタグにのみHTMLエスケープを行わない。
-
Method Details
-
escapeHtml
HTMLエスケープを行う。 このメソッドは、セキュリティ上問題のある文字列のHTMLエスケープ行う。
文字列がnullであった場合、nullを返す。HTMLエスケープ例: & -> & < -> < > -> > " -> " ' -> ' 実装例:
String str = "&<>\"\'"; HtmlTagUtil.escapeHtml(str); //-->&<>"'
- Parameters:
s
- エスケープ対象のオブジェクト- Returns:
- エスケープ後の文字列
-
escapeHtml
HTMLエスケープ及び半角スペースと改行の変換を行う。 このメソッドは、下記の処理を行う。- セキュリティ上問題のある文字列のHTMLエスケープ処理
- 改行、半角スペースの変換
HTMLエスケープ例: & -> & < -> < > -> > " -> " ' -> '
withHtmlFormatにtrueが指定された場合は、半角スペースと改行の変換を行う。半角スペース、改行の変換例: " "(半角スペース) -> \n、\r、\r\n -> <br/>
実装例:
String str = " \r\n\n\r"; HtmlTagUtil.escapeHtml(str, true) //--> <br/><br/><br/>
- Parameters:
s
- エスケープ対象のオブジェクトwithHtmlFormat
- 改行変換と半角スペース変換を行う場合はtrue- Returns:
- エスケープ後の文字列
-
escapeHtml
@Published(tag="architect") public static String escapeHtml(Object s, boolean withHtmlFormat, List<String> safeTags, List<String> safeAttributes) HTMLエスケープ、半角スペース・改行の変換を行う。 HTMLエスケープ対象外のタグを指定した場合は、指定したタグにのみHTMLエスケープを行わない。 このメソッドでは、下記の処理を行う。- セキュリティ上問題のある文字列のHTMLエスケープ
- 改行、半角スペースの変換
- HTMLエスケープ対象外に指定したタグのエスケープのスキップ
HTMLエスケープ例: & -> & < -> < > -> > " -> " ' -> '
withHtmlFormatにtrueが指定された場合は、半角スペースと改行の変換を行う。半角スペース、改行の変換例: " "(半角スペース) ->
\n、\r、\r\n -> <br/>実装例:
エスケープ対象外のタグとその中で使用できるタグの属性を設定した場合は、さらに下記の変換を行う。String str = " \r\n\n\r"; HtmlTagUtil.escapeHtml(str, true, null, null) //--> <br/><br/><br/>
実装例:
String str1 = "<a href=\"javascript:alert();\" name=\"サンプル\">あいう</a>"; String str2 = "<a href=\"xxx.html\" name=\"サンプル\">あいう</a>"; List<String> list1 = Arrays.asList("a"); List<String> list2 = Arrays.asList("href", "name"); //属性値の内容がセキュリティ上問題のあるものだった場合、設定と関係なくエスケープされる HtmlTagUtil.escapeHtml(str1.toString(), false, list1, list2); //--><a href="javascript:alert();" name="サンプル">あいう</a> //属性地の内容がセキュリティ上問題のないものだった場合、設定したタグはエスケープされない HtmlTagUtil.escapeHtml(str2.toString(), false, list1, list2); //--><a href="xxx.html" name="サンプル">あいう</a>
- Parameters:
s
- エスケープ対象のオブジェクトwithHtmlFormat
- 改行変換と半角スペース変換を行う場合はtruesafeTags
- エスケープ対象外のタグsafeAttributes
- エスケープ対象外のタグの中で使用することができる属性。 (ここに無い属性が使用されていた場合は、エスケープ対象外のタグでも、 エスケープされる。)- Returns:
- エスケープ後の文字列
-