Я парень из php, но мне нужно сделать небольшой проект в JSP. Мне интересно, есть ли в JSP эквивалент функции htmlentities (из php).
public static String stringToHTMLString (String string) {...
То же самое делает утилита из commons-lang library:
org.apache.commons.lang.StringEscapeUtils.escapeHtml
Просто экспортируйте его в custom tld - и вы получите удобный метод для jsp.
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 , if you do that you loss // word breaking if (lastWasBlankChar) { lastWasBlankChar = false; sb.append(" "); } else { lastWasBlankChar = true; sb.append(' '); } } else { lastWasBlankChar = false; // // HTML Special Chars if (c == '"') sb.append("""); else if (c == '&') sb.append("&"); else if (c == '<') sb.append("<"); else if (c == '>') sb.append(">"); else if (c == '\n') // Handle Newline sb.append("<br/>"); 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(); }
Я предлагаю использовать escapeXml, установленный в истинный атрибут JSTL, непосредственно в JSP
<c:out value="${string}" escapeXml="true" />