스마트에디터로 저장한 글을 출력할 때 html 태그가 그대로 문자열로 출력되는 일이 생겼다.
jsp에
<c:out value="${contents}" escapeXml="false">
이렇게 escapeXml="false"가 있음에도 불구하고. ㅎㅏ
escapeXml는 jstl의 c:out 태그 속성 중 하나인데 특수문자들을 변형시키지 않고 출력하기 위해 false로 설정한 것이었다.
그치만? 적용은 되지 않았고 ^^...
암튼 플젝 내 소스를 좀 뒤적여봤더니 cfn.tld 파일에 요런게 있었다.
<function> <description>remove escapeHtml</description> <name>unescapeHtml</name> <function-class>egovframework.com.util.Util</function-class> <function-signature>java.lang.String unescapeHtml(java.lang.String)</function-signature> </function>
위에 해당하는 Util.java 파일 소스는 이거!
public static String unescapeHtml(String strVal) { String strRtn = StringEscapeUtils.unescapeHtml4(strVal); strRtn = StringEscapeUtils.unescapeHtml3(strVal); strRtn = strRtn.replaceAll("'", "'"); return strRtn; }
그래서 jsp에
<c:out value="${cfn:unescapeHtml(contents)}" escapeXml="false">
이렇게 적용시켜줬더니 이쁘게 잘 나왔다. 만족만족