Class HtmlTagUtil

java.lang.Object
nablarch.common.web.HtmlTagUtil

public final class HtmlTagUtil extends Object
HTMLタグの作成、編集に必要となる共通機能を提供するユーティリティ。
  • Method Details

    • escapeHtml

      @Published(tag="architect") public static String escapeHtml(Object s)
      HTMLエスケープを行う。

      このメソッドは、セキュリティ上問題のある文字列のHTMLエスケープ行う。
      文字列がnullであった場合、nullを返す。

       HTMLエスケープ例:
      
       
       & -> &
       < -> &lt;
       > -> &gt;
       " -> &#034;
       ' -> &#039;
       
       実装例:
      
       
       String str = "&<>\"\'";
       HtmlTagUtil.escapeHtml(str); //-->&amp;&lt;&gt;&#034;&#039;
       
       
      Parameters:
      s - エスケープ対象のオブジェクト
      Returns:
      エスケープ後の文字列
    • escapeHtml

      @Published(tag="architect") public static String escapeHtml(Object s, boolean withHtmlFormat)
      HTMLエスケープ及び半角スペースと改行の変換を行う。

      このメソッドは、下記の処理を行う。

      • セキュリティ上問題のある文字列のHTMLエスケープ処理
      • 改行、半角スペースの変換
      文字列がnullであった場合、nullを返す。
       HTMLエスケープ例:
      
       
       &  -> &amp;
       <  -> &lt;
       >  -> &gt;
       "  -> &#034;
       '  -> &#039;
       
       
      withHtmlFormatにtrueが指定された場合は、半角スペースと改行の変換を行う。
       半角スペース、改行の変換例:
      
       " "(半角スペース) -> &nbsp;
       \n、\r、\r\n -> <br/>
       
       実装例:
      
       
       String str = " \r\n\n\r";
       HtmlTagUtil.escapeHtml(str, true) //-->&nbsp;<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エスケープ対象外に指定したタグのエスケープのスキップ
      文字列がnullであった場合、nullを返す。
       HTMLエスケープ例:
       
       & -> &amp;
       < -> &lt;
       > -> &gt;
       " -> &#034;
       ' -> &#039;
       
       
      withHtmlFormatにtrueが指定された場合は、半角スペースと改行の変換を行う。
       半角スペース、改行の変換例:
      
       " "(半角スペース) -> &nbsp;
      \n、\r、\r\n -> <br/>
       実装例:
      
       
       String str = " \r\n\n\r";
       HtmlTagUtil.escapeHtml(str, true, null, null) //--> &nbsp;<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);
                   //-->&lt;a href=&#034;javascript:alert();&#034; name=&#034;サンプル&#034;&gt;あいう</a>
      
       //属性地の内容がセキュリティ上問題のないものだった場合、設定したタグはエスケープされない
       HtmlTagUtil.escapeHtml(str2.toString(), false, list1, list2);
                   //--><a href="xxx.html" name="サンプル">あいう</a>
       
       
      Parameters:
      s - エスケープ対象のオブジェクト
      withHtmlFormat - 改行変換と半角スペース変換を行う場合はtrue
      safeTags - エスケープ対象外のタグ
      safeAttributes - エスケープ対象外のタグの中で使用することができる属性。 (ここに無い属性が使用されていた場合は、エスケープ対象外のタグでも、 エスケープされる。)
      Returns:
      エスケープ後の文字列