খালি বা নাল জেএসটিএল সি ট্যাগগুলির মূল্যায়ন করুন


389

Stringএর cট্যাগ ব্যবহার করে কোনও শূন্য বা ফাঁকা থাকলে কীভাবে আমি যাচাই করব JSTL?

আমার নামের একটি পরিবর্তনশীল আছে var1এবং আমি এটি প্রদর্শন করতে পারি, তবে আমি এটিটি বৈধ করার জন্য একটি তুলনাকারী যুক্ত করতে চাই।

<c:out value="${var1}" />

আমি এটি যাচাই করতে চাই যখন এটি নাল বা খালি হয় (আমার মানগুলি স্ট্রিং হয়)।

উত্তর:


763

জেএসটিএল এর সি ট্যাগ ব্যবহার করে কোনও স্ট্রিং নাল বা ফাঁকা থাকলে আমি কীভাবে যাচাই করতে পারি?

আপনি এর জন্য emptyএকটিতে কীওয়ার্ডটি ব্যবহার করতে পারেন <c:if>:

<c:if test="${empty var1}">
    var1 is empty or null.
</c:if>
<c:if test="${not empty var1}">
    var1 is NOT empty or null.
</c:if>

বা <c:choose>:

<c:choose>
    <c:when test="${empty var1}">
        var1 is empty or null.
    </c:when>
    <c:otherwise>
        var1 is NOT empty or null.
    </c:otherwise>
</c:choose>

অথবা যদি আপনাকে শর্তসাপেক্ষে একগুচ্ছ ট্যাগগুলি রেন্ডার করার প্রয়োজন না হয় এবং এইভাবে আপনি এটি কেবলমাত্র কোনও ট্যাগ বৈশিষ্ট্যের মধ্যে পরীক্ষা করতে পারেন, তবে আপনি EL শর্তসাপেক্ষ অপারেটরটি ব্যবহার করতে পারেন ${condition? valueIfTrue : valueIfFalse}:

<c:out value="${empty var1 ? 'var1 is empty or null' : 'var1 is NOT empty or null'}" />

এই বিষয়গুলি সম্পর্কে আরও জানার জন্য ${}( এক্সপ্রেশন ল্যাঙ্গুয়েজ , যা জেএসটিএল থেকে পৃথক বিষয় ), এখানে চেক করুন

আরো দেখুন:


4
খালি চেক নিয়ে অদ্ভুত সমস্যা রয়েছে এমন লোকেদের জন্য এখানে একটি সম্ভাব্য কারণ সহ একটি মৎসকাহিনী রয়েছে
CodeReaper

9
সংক্ষিপ্ত আকার: প্রাচীন জেএসটিএল 1.0 ব্যবহার করার সময় emptyকাজ করে না Set। আপনাকে জেএসটিএল ১.১ এ আপগ্রেড করতে হবে (এটি 2003 এর আগে থেকে)।
বালাসসি

5
@ বালুসসি - EL ${not empty var1}খালি এবং নাল উভয় জন্য একই সাথে পরীক্ষা করে? আমি বলতে চাচ্ছি পরীক্ষা সত্যতে মূল্যায়ন করা হয় যদি এবং কেবল যদি var1হয় না নাল এবং var1 হয় না খালি। nullআলাদা করে চেক করার দরকার নেই ?
সিংহ

1
হয় emptyequvilant করার NE ''
শরীফ

2
@ শরীফ: না, তা নয়। Stringমানগুলির ক্ষেত্রে এটি সমান var ne null and var ne ''। আরও এটি সমর্থন করে Object, অ্যারে Collectionএবং Map
বালুসসি

25

ফাঁকা স্ট্রিং চেক করতে, আমি নিম্নলিখিতটি প্রস্তাব করছি

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

<c:if test="${empty fn:trim(var1)}">

</c:if>

এটি নালগুলিও পরিচালনা করে


7

যদি আপনি কেবল শূন্য বা খালি পরীক্ষা করেন তবে আপনি এটির জন্য ডিফল্ট বিকল্পটি ব্যবহার করতে পারেন: <c:out default="var1 is empty or null." value="${var1}"/>


6

এই কোডটি সঠিক তবে আপনি শূন্য বা খালি স্ট্রিংয়ের পরিবর্তে প্রচুর স্থান ('') প্রবেশ করলে মিথ্যাটি ফিরে আসে।

এই ব্যবহারটি নিয়মিত এক্সপ্রেসন সংশোধন করতে (নীচের এই কোডটি ভেরিয়েবলটি শূন্য বা খালি বা org.apache.commons.lang.StringUtils.isNotBlank এর মতো ফাঁকা আছে কিনা তা পরীক্ষা করে দেখুন):

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>
        <c:if test="${not empty description}">
            <c:set var="description" value="${fn:replace(description, ' ', '')}" />
            <c:if test="${not empty description}">
                  The description is not blank.
            </c:if>
        </c:if>

6

এই এক লাইনার।

EL এর ভিতরে টার্নারি অপারেটর

${empty value?'value is empty or null':'value is NOT empty or null'}

3

তুমি ব্যবহার করতে পার

    ${var == null}

অন্যথায়।


না, দুর্ভাগ্যক্রমে, আপনি পারবেন না। এটিতে কোনও চিহ্ন ছাড়া "" একটি খালি স্ট্রিং তবে এটি শূন্য নয়।
gdrt

1

আপনি জাভা কন্ট্রোলার থেকে জেএসপি ফাইলে যে কোনও আন্ত এবং একটি স্ট্রিং যাচাই করবেন তার উদাহরণ এখানে।

MainController.java:

@RequestMapping(value="/ImportJavaToJSP")
public ModelAndView getImportJavaToJSP() {
    ModelAndView model2= new ModelAndView("importJavaToJSPExamples");

    int someNumberValue=6;
    String someStringValue="abcdefg";
    //model2.addObject("someNumber", someNumberValue);
    model2.addObject("someString", someStringValue);

    return model2;
}

importJavaToJSPExamples.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<p>${someNumber}</p>
<c:if test="${not empty someNumber}">
    <p>someNumber is Not Empty</p>
</c:if>
<c:if test="${empty someNumber}">
    <p>someNumber is Empty</p>
</c:if>
<p>${someString}</p>
<c:if test="${not empty someString}">
    <p>someString is Not Empty</p>
</c:if>
<c:if test="${empty someString}">
    <p>someString is Empty</p>
</c:if>

আমার মন্তব্য নিয়ে সমস্যা কি?
জিন

-1
In this step I have Set the variable first:

<c:set var="structureId" value="<%=article.getStructureId()%>" scope="request"></c:set>

In this step I have checked the variable empty or not:

 <c:if test="${not empty structureId }">
    <a href="javascript:void(0);">Change Design</a>
 </c:if>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.