জেএসটিএল দিয়ে সংগ্রহের আকারটি পরীক্ষা করুন


উত্তর:


430
<c:if test="${companies.size() > 0}">

</c:if>

এই বাক্য গঠনটি কেবল EL 2.2 বা আরও নতুন (সার্ভলেট 3.0 / জেএসপি 2.2 বা আরও নতুন) এ কাজ করে। যদি আপনি কোনও এক্সএমএল পার্সিং ত্রুটির মুখোমুখি হন কারণ আপনি জেএসপি এর পরিবর্তে জেএসপিএক্স বা ফেসলেট ব্যবহার করছেন, তবে gtপরিবর্তে ব্যবহার করুন >

<c:if test="${companies.size() gt 0}">

</c:if>

আপনি যদি সত্যিই কোনও এল পার্সিং ত্রুটির মুখোমুখি হন তবে আপনি সম্ভবত খুব পুরানো EL সংস্করণ ব্যবহার করছেন। আপনার fn:length()তখন জেএসটিএল ফাংশন প্রয়োজন । ডকুমেন্টেশন থেকে :

দৈর্ঘ্য (java.lang.Object) - সংগ্রহের আইটেমের সংখ্যা, বা স্ট্রিংয়ের অক্ষরের সংখ্যা প্রদান করে।

নাম স্থানের অনুমতি দেওয়ার জন্য এটিকে JSP পৃষ্ঠার শীর্ষে রাখুন fn:

<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

বা আপনি যদি জেএসপিএক্স বা ফেসলেট ব্যবহার করছেন:

<... xmlns:fn="http://java.sun.com/jsp/jstl/functions">

এবং আপনার পৃষ্ঠায় এটি ব্যবহার করুন:

<p>The length of the companies collection is: ${fn:length(companies)}</p>

সুতরাং একটি সংগ্রহের দৈর্ঘ্যের সাথে পরীক্ষা করতে:

<c:if test="${fn:length(companies) gt 0}">

</c:if>

বিকল্পভাবে, এই নির্দিষ্ট ক্ষেত্রে আপনি কেবল EL emptyঅপারেটরটি ব্যবহার করতে পারেন :

<c:if test="${not empty companies}">

</c:if>

47
কেবলমাত্র নোট করতে চেয়েছিলেন যে যদি আকারটি সংগ্রহের প্রয়োজন হয় তবে সংগ্রহটি খালি নয় কিনা তা নির্ধারণ করা হয় তবে "খালি" অপারেটরটি দরকারী কারণ এটি নাল পরীক্ষা করে।
জোয়েল

আমি এখানে মার্কের সাথে একমত কেন একটি পৃষ্ঠার জন্য আপনার পৃষ্ঠাতে আরও ক্রাফ্ট আমদানি করবেন? মার্কের সমাধানটি ব্যবহার করুন, এটি পরিষ্কার।
ResourceReaper

রাজি - খালি পরিষ্কার। @ জোয়েলের পুরো উত্তর হিসাবে পোস্ট করা উচিত যাতে এটি ভোট দেওয়া এবং গ্রহণযোগ্য হতে পারে। আমাদের এখানে প্রচুর (আমি) নন-জেএসপি প্রোগ্রামাররা হ'ল আমরা দেখি যে প্রথম কোডের কোডটি ছাড়াই গুগল এবং এসও থেকে স্নিপেটগুলি এক সাথে অনুলিপি করা হয়েছে।
জোশ

9
ওপি আকারটি যাচাইয়ের বিষয়ে জিজ্ঞাসা করেছিল, এটি খালি কিনা তা যাচাই করার বিষয়ে অগত্যা নয়, আমার উত্তরটি আরও জটিল পরিস্থিতিগুলিকে সম্পূর্ণ ট্যাগ লাইব্রেরি উপলক্ষে বিবেচনা করার অনুমতি দেয়।
মার্টারলক

সংস্থাগুলি অবশ্যই পরম নয় ভ্যারিয়াস হতে হবে, অন্যথায় আপনাকে এটি সংজ্ঞায়িত করতে হবে, যেমন এটিজি - <ডিএসপি: getvalueof var = "সংস্থাগুলি" পরম = "অ্যারেপ্রাম" />
বয়কো

30

পূর্ববর্তী মন্তব্যে @ জোয়েল এবং @ মার্ক চর্লি পরামর্শ দিয়েছেন:

${empty companies}

এই নাল এবং খালি তালিকা / সংগ্রহ / অ্যারে পরীক্ষা করে। এটি আপনাকে দৈর্ঘ্য দেয় না তবে এটি ওপিতে উদাহরণটি সন্তুষ্ট করে। আপনি এটি দিয়ে পার পেতে পারেন, তাহলে এই একটি ট্যাগ গ্রন্থাগার মত তার কর্কশ সিনট্যাক্স আমদানি চেয়ে মাত্র ক্লিনার gt



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