यहाँ दो और संभावनाएँ हैं:
जेएसपी ईएल 3.0 लगातार
जब तक आप ईएल के कम से कम संस्करण 3.0 का उपयोग कर रहे हैं, तब तक आप अपने पेज में स्थिरांक आयात कर सकते हैं:
<%@ page import="org.example.Status" %>
<c:when test="${dp.status eq Status.VALID}">
हालाँकि, कुछ IDE को यह अभी तक समझ में नहीं आया है (उदाहरण के लिए IntelliJ ) ताकि आपको कोई चेतावनी न मिले यदि आप एक टाइपो बनाते हैं, रनटाइम तक।
उचित आईडीई समर्थन मिलने के बाद यह मेरा पसंदीदा तरीका होगा।
हेल्पर के तरीके
तुम बस अपने enum में getters जोड़ सकते हैं।
public enum Status {
VALID("valid"), OLD("old");
private final String val;
Status(String val) {
this.val = val;
}
public String getStatus() {
return val;
}
public boolean isValid() {
return this == VALID;
}
public boolean isOld() {
return this == OLD;
}
}
फिर अपने JSP में:
<c:when test="${dp.status.valid}">
यह सभी IDE में समर्थित है और यदि आप अभी तक EL 3.0 का उपयोग नहीं कर सकते हैं तो भी यह काम करेगा। इस समय मैं यही कर रहा हूं क्योंकि यह सभी तर्क को मेरी दुश्मनी में लिपटा रखता है।
यह भी ध्यान रखें कि अगर यह संभव है कि वेरिएबल के लिए एनम का भंडारण शून्य हो। यदि आपके कोड की गारंटी नहीं है कि यह शून्य नहीं है, तो आपको पहले इसकी जांच करनी होगी:
<c:when test="${not empty db.status and dp.status.valid}">
मुझे लगता है कि यह विधि उन लोगों के लिए बेहतर है जहां आपने JSP में एक मध्यस्थ मूल्य निर्धारित किया है क्योंकि आपको प्रत्येक पृष्ठ पर ऐसा करना है जहां आपको एनम का उपयोग करने की आवश्यकता है। हालांकि, इस समाधान के साथ आपको केवल एक बार गेटर घोषित करने की आवश्यकता है।