এখানে আরও দুটি সম্ভাবনা রয়েছে:
জেএসপি ইএল 3.0 কনস্ট্যান্টস
আপনি যতক্ষণ না EL এর ন্যূনতম সংস্করণ 3.0 ব্যবহার করছেন ততক্ষণ আপনি নীচের হিসাবে আপনার পৃষ্ঠায় ধ্রুবকগুলি আমদানি করতে পারেন:
<%@ page import="org.example.Status" %>
<c:when test="${dp.status eq Status.VALID}">
তবে কিছু আইডিই এখনও এটি বুঝতে পারে না (যেমন ইন্টেলিজ ) তাই রান টাইম অবধি টাইপ বানালে আপনি কোনও সতর্কতা পাবেন না।
এটি সঠিক আইডিই সমর্থন পাওয়ার পরে এটি আমার পছন্দসই পদ্ধতি হবে।
সহায়ক পদ্ধতি
আপনি কেবল আপনার এনামে গেটার যুক্ত করতে পারেন।
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;
}
}
তারপরে আপনার জেএসপিতে:
<c:when test="${dp.status.valid}">
এটি সমস্ত আইডিইগুলিতে সমর্থিত এবং আপনি যদি এখনও EL 3.0 ব্যবহার করতে না পারেন তবে তাও কাজ করবে। এই মুহুর্তে আমি এটিই করি কারণ এটি সমস্ত যুক্তিগুলিকে আমার এনামে আবৃত করে রাখে।
এছাড়াও ভেরিয়েবলটি এনামের সংরক্ষণের জন্য ভেরিয়েবলের পক্ষে সম্ভব হয় কিনা তা সম্পর্কে সতর্কতা অবলম্বন করুন। আপনার কোডটি যদি গ্যারান্টি দেয় না যে এটি নাল নয়: আপনাকে প্রথমে এটি পরীক্ষা করতে হবে would
<c:when test="${not empty db.status and dp.status.valid}">
আমি মনে করি যে এই পদ্ধতিটি আপনি জেএসপিতে মধ্যস্থতাকারী মান নির্ধারণ করেছেন সেখানে তাদের চেয়ে উচ্চতর কারণ আপনাকে প্রতিটি পৃষ্ঠাতে যেখানে এনাম ব্যবহারের প্রয়োজন তা করতে হবে। যাইহোক, এই সমাধানের সাথে আপনার কেবল একবার খালি ঘোষণা করা দরকার।