เขียนหน้า JSP ทำอะไรกันแน่<c:out>
? ฉันสังเกตว่าทั้งสองอย่างต่อไปนี้ให้ผลลัพธ์เหมือนกัน:
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
เขียนหน้า JSP ทำอะไรกันแน่<c:out>
? ฉันสังเกตว่าทั้งสองอย่างต่อไปนี้ให้ผลลัพธ์เหมือนกัน:
<p>The person's name is <c:out value="${person.name}" /></p>
<p>The person's name is ${person.name}</p>
คำตอบ:
c:out
หลีกเลี่ยงอักขระ HTML เพื่อให้คุณสามารถหลีกเลี่ยงการเขียนสคริปต์ข้ามไซต์ได้
ถ้า person.name = <script>alert("Yo")</script>
สคริปต์จะดำเนินการในกรณีที่สอง แต่ไม่ใช่เมื่อใช้ c:out
ตามที่กล่าวไว้ Will Wagner ใน jsp เวอร์ชันเก่าคุณควรใช้c:out
เพื่อส่งออกข้อความไดนามิกเสมอ
นอกจากนี้การใช้ไวยากรณ์นี้:
<c:out value="${person.name}">No name</c:out>
คุณสามารถแสดงข้อความ "ไม่มีชื่อ" เมื่อชื่อเป็นโมฆะ
c:out
ยังมีแอตทริบิวต์สำหรับกำหนดค่าเริ่มต้นหากค่าที่person.name
เกิดขึ้นเป็นค่าว่าง
คุณสามารถเปิดใช้งานการหลีกเลี่ยงเอนทิตี Xml ได้อย่างชัดเจนโดยใช้ค่าคุณสมบัติ escapeXml เท่ากับ true FYI โดยค่าเริ่มต้นจะเป็น "จริง"
JSP เวอร์ชันเก่าไม่รองรับไวยากรณ์ที่สอง