Viết trang JSP, chính xác những gì <c:out>
làm gì? Tôi đã nhận thấy rằng cả hai đều có cùng kết quả:JSP: JSTL của <c:out> thẻ
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
Viết trang JSP, chính xác những gì <c:out>
làm gì? Tôi đã nhận thấy rằng cả hai đều có cùng kết quả:JSP: JSTL của <c:out> thẻ
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
c:out
thoát các ký tự HTML để bạn có thể tránh việc tạo mã cross-site.
nếu person.name = <script>alert("Yo")</script>
kịch bản sẽ được thực hiện trong trường hợp thứ hai, nhưng không phải khi sử dụng c:out
c:out
cũng có một thuộc tính cho gán một giá trị mặc định nếu giá trị của person.name
sẽ xảy ra là null.
Như đã nói Will Wagner, trong phiên bản cũ của jsp bạn nên luôn luôn sử dụng c:out
để văn bản động đầu ra.
Hơn nữa, sử dụng cú pháp sau:
<c:out value="${person.name}">No name</c:out>
bạn có thể hiển thị dòng chữ "Không có tên" khi tên là null.
Cool! Tôi không biết điều đó. –
Đồng ý, tuyệt vời. Cảm ơn bạn đã giảng dạy và giúp đỡ. Tôi cũng không biết điều đó. Chúc mừng! –
hoặc
Bạn rõ ràng có thể bật thoát của các thực thể Xml bằng cách sử dụng giá trị escapeXml thuộc tính bằng true. FYI, theo mặc định là "true".
Một số mã ví dụ sẽ thực sự giúp hoàn thành câu trả lời này. – RachelC
Chỉ khi 'escapeXML' được đặt thành true (không chắc chắn là theo mặc định) –
Tôi tin rằng điều này là đúng theo mặc định. –
N.B. nó thoát XML không phải HTML. Một trong những sự tinh tế khó chịu hơn của JSTL. Cuối cùng tôi luôn viết HTML của riêng mình EL fn. –