2008-11-14 11 views
100

JSP 페이지를 작성하면 정확히 <c:out>은 무엇을합니까? 다음과 같은 결과가 모두 나타납니다.JSP : JSTL의 <c:out> 태그

<p>The person's name is <c:out value="${person.name}" /></p> 
<p>The person's name is ${person.name}</p> 

답변

144

c:out은 크로스 사이트 스크립팅을 피할 수 있도록 HTML 문자를 이스케이프 처리합니다. 스크립트가 두 번째 경우에서 실행하지만, c:out

+1

'escapeXML'이 true로 설정된 경우에만 (기본값 인 경우 확실하지 않음) –

+16

기본적으로 true라고 생각합니다. –

+7

N.B. 그것은 HTML이 아닌 XML을 이스케이프합니다. JSTL의 더 귀찮은 미묘함 중 하나. 나는 항상 내 자신의 HTML 탈출구 EL fn을 작성한다. –

3

이전 버전의 JSP는 두 번째 구문을 지원하지 않았습니다.

+0

왜 downvote? – Thilo

5

c:out를 사용하지 않을 때는됩니다 person.name = <script>alert("Yo")</script>

경우

person.name의 값이 null 인 것을 일어나는 경우 디폴트 값을 지정하는 속성이 있습니다.

출처 :

116

으로 out (TLDDoc Generated Documentation) 당신은 항상 출력 동적 텍스트에 c:out를 사용한다 JSP의 이전 버전에서 윌 와그너는 말했다.

또한,이 구문을 사용하여 : 이름이 null 인 경우

<c:out value="${person.name}">No name</c:out> 

당신은 텍스트 "아니오 이름"을 표시 할 수 있습니다.

+22

입니다. 난 몰랐어. –

+0

동의합니다. 가르치고 도움을 주셔서 감사합니다. 나도 몰랐다. 건배! –

+18

또는 gmustudent

5

escapeXml 속성 값을 true로 사용하여 Xml 엔터티의 이스케이프를 명시 적으로 활성화 할 수 있습니다. 참고로, 기본적으로 "true"입니다.

+0

일부 예제 코드는이 답변을 완성하는 데 정말로 도움이됩니다. – RachelC