2008-11-30 8 views
3

Je suis un gars php, mais je dois faire un petit projet dans JSP. Je me demande s'il existe une fonction équivalente à htmlentities (de php) dans JSP.htmlentities équivalent en JSP?

+0

Voir http://stackoverflow.com/questions/3636956 –

Répondre

3
public static String stringToHTMLString(String string) { 
    StringBuffer sb = new StringBuffer(string.length()); 
    // true if last char was blank 
    boolean lastWasBlankChar = false; 
    int len = string.length(); 
    char c; 

    for (int i = 0; i < len; i++) 
     { 
     c = string.charAt(i); 
     if (c == ' ') { 
      // blank gets extra work, 
      // this solves the problem you get if you replace all 
      // blanks with &nbsp;, if you do that you loss 
      // word breaking 
      if (lastWasBlankChar) { 
       lastWasBlankChar = false; 
       sb.append("&nbsp;"); 
       } 
      else { 
       lastWasBlankChar = true; 
       sb.append(' '); 
       } 
      } 
     else { 
      lastWasBlankChar = false; 
      // 
      // HTML Special Chars 
      if (c == '"') 
       sb.append("&quot;"); 
      else if (c == '&') 
       sb.append("&amp;"); 
      else if (c == '<') 
       sb.append("&lt;"); 
      else if (c == '>') 
       sb.append("&gt;"); 
      else if (c == '\n') 
       // Handle Newline 
       sb.append("&lt;br/&gt;"); 
      else { 
       int ci = 0xffff & c; 
       if (ci < 160) 
        // nothing special only 7 Bit 
        sb.append(c); 
       else { 
        // Not 7 Bit use the unicode system 
        sb.append("&#"); 
        sb.append(new Integer(ci).toString()); 
        sb.append(';'); 
        } 
       } 
      } 
     } 
    return sb.toString(); 
} 
+0

Donc, il n'y a aucune fonction intégrée pour le faire? –

+0

Je suis d'accord avec ce que Florin a fait. Je n'ai pas vu une fonction buit-in en Java avec JSP ou JSTL qui fait ce que vous demandez. – codefin

+0

Ok, merci les gars! –

7

Chaîne stringToHTMLString public static (string String) {...

La même chose ne l'utilité de commons-lang bibliothèque:

org.apache.commons.lang.StringEscapeUtils.escapeHtml 

exporter juste dans tld personnalisé - et vous obtiendrez une méthode pratique pour jsp.

1

Je suggère d'utiliser escapeXml à true attribut de JSTL directement dans JSP

<c:out value="${string}" escapeXml="true" />