سؤال
كتابة صفحة 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
نصائح أخرى
كما قال ويل فاغنر ، في الإصدار القديم من JSP ، يجب عليك دائمًا استخدام c:out
لإخراج النص الديناميكي.
علاوة على ذلك ، باستخدام هذا الجملة:
<c:out value="${person.name}">No name</c:out>
يمكنك عرض النص "No Name" عندما يكون الاسم NULL.
c:out
لديه أيضًا سمة لتعيين قيمة افتراضية إذا كانت قيمة person.name
يحدث أن يكون فارغا.
يمكنك تمكين الهروب من كيانات XML صراحة باستخدام قيمة ESCAPEXML السمة تساوي صحيحًا. لمعلوماتك ، إنه افتراضي "صحيح".
لم تدعم الإصدارات القديمة من JSP بناء الجملة الثاني.