জেএসপি: জেএসটিএল <সি: আউট> ট্যাগ


110

একটি জেএসপি পৃষ্ঠা লিখছেন, ঠিক কী করে <c:out>? আমি লক্ষ্য করেছি যে নিম্নলিখিত উভয়টির একই ফলাফল রয়েছে:

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

উত্তর:


153

c:out এইচটিএমএল অক্ষরগুলি এড়িয়ে যায় যাতে আপনি ক্রস-সাইট স্ক্রিপ্টিং এড়াতে পারেন।

যদি person.name = <script>alert("Yo")</script>

স্ক্রিপ্টটি দ্বিতীয় ক্ষেত্রে কার্যকর করা হবে, তবে ব্যবহারের সময় নয় c:out


2
কেবলমাত্র 'এসেক্সএক্সএমএল' এটি সত্য হিসাবে সেট হয়ে থাকলে (এটি পূর্বনির্ধারিত কিনা তা নিশ্চিত নয়)
ক্রিস সের্রা

17
আমি বিশ্বাস করি এটি ডিফল্টরূপে সত্য।
জ্যাক দ্য হিউম্যান

7
এনবি এটি এক্সটিএমএল নয় এক্সএমএল এড়িয়ে যায়। জেএসটিএল এর আরও বিরক্তিকর একটি সূক্ষ্মতা। আমি সর্বদা আমার নিজের এইচটিএমএল এসকেপ EL fn লিখি।
অ্যাডাম জেন্ট

4
অ্যাট্রিবিউট নাম তাই এটি escapeXml = "সত্য" নয় escapeXML কেস সংবেদনশীল
মার্ক Chorley

2
এই উত্তরের কোডের নমুনাটি কী দেখায় সে সম্পর্কে আমার কোনও ধারণা নেই- কেউ কি স্পষ্ট করে বলতে পারেন? এটি একটি "দ্বিতীয় কেস" এর উল্লেখ করেছে তবে আমি এটি দেখতে পাচ্ছি না এবং আমি সিটিও দেখছি না: কোডটিতে ব্যবহৃত হচ্ছে।
আইসডড্যান্ট

126

উইল ওয়াগনার বলেছিলেন, জেএসপির পুরানো সংস্করণে আপনার সর্বদা c:outগতিশীল পাঠ্য আউটপুট ব্যবহার করা উচিত ।

তদতিরিক্ত, এই বাক্য গঠনটি ব্যবহার করে:

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

নামটি বাতিল হলে আপনি "নাম নেই" পাঠ্যটি প্রদর্শন করতে পারেন।


24
শান্ত! আমি যে জানি না।
আদম আশাম

রাজি, শীতল। শিক্ষাদান এবং সাহায্য করার জন্য ধন্যবাদ। আমি তাও জানতাম না। চিয়ার্স!
বি-মানি

20
বা <সি: আউট মান = "। {person.name}" ডিফল্ট = "নাম নেই" />
gmustudent

2
জেএসআর 52, রক্ষণাবেক্ষণ প্রকাশ 2, পৃষ্ঠা 22 দেখুন "একটি দেহ সহ"। লিঙ্ক: download.oracle.com/otndocs/jcp/jstl-1.2-mrel2-eval-oth-JSpec
বেরেট

1
@Barett। কুল। আমি অবাক হয়েছি কেন এটি কখনই কোনও টিউটোরিয়াল বা উদাহরণ দেয় না। ডিফল্ট বৈশিষ্ট্য আইএমওর চেয়ে আরও সুবিধাজনক সিনট্যাক্স।
থিলো


5

আপনি স্পষ্টভাবে এক্সটিএমএল সত্তাদের পলায়ন সক্ষম করতে পারেন একটি এ্যাট্রিবিউট এসেক্সএমএল মান সমান হিসাবে ব্যবহার করে। এফওয়াইআই, এটি ডিফল্টরূপে "সত্য"।


কিছু উদাহরণ কোড সত্যই এই উত্তরটি সম্পূর্ণ করতে সহায়তা করবে।
রাচেলড

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.