jsp의 input 태그에 value 값으로 '<', '>'와 같은 화살괄호가 포함된 경우, 이 데이터를 자바로 보내게 되면 특수 문자 표현으로 치환된다.
예를 들면, 나는<짱이야>
와 같은 input value가
나는<짱이야>
이런 식으로 자바에 표현된다.
'어떤 해결 방법이 있지?' 하고 찾아보니 아파치에서 제공하는 StringEscapeUtils 클래스를 사용하면 된다고 한다.
org.apache.commons.lang.StringEscapeUtils를 import 해야 한다.
maven project의 경우 다음 의존성을 추가한다.
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.3</version>
</dependency>
gradle project의 경우 다음 의존성을 추가한다.
dependencies {
implementation 'commons-lang:commons-lang:2.6' // 원하는 버전
}
그리고 아래 코드처럼 치환하면 된다.
String unescapedInput = StringEscapeUtils.unescapeHtml(obj.getWord());
obj.setWord(unescapedInput);
java html 태그 변환 치환
java 특수문자 치환 시 유용한 클래스
replace() 메서드를 이용하는 방법이다.
아주 클래식한 방법이다.
String word = obj.getWord();
word = word.replace("<", "<");
word = word.replace(">", ">");
obj.setWord(word);