İşte iki olasılık daha:
JSP EL 3.0 Sabitleri
EL'nin en az 3.0 sürümünü kullandığınız sürece, sabitleri sayfanıza aşağıdaki şekilde aktarabilirsiniz:
<%@ page import="org.example.Status" %>
<c:when test="${dp.status eq Status.VALID}">
Ancak, bazı IDE'ler bunu henüz anlamadıklarından (örneğin IntelliJ ) çalışma zamanına kadar bir yazım hatası yaparsanız herhangi bir uyarı almayacaksınız.
Uygun IDE desteği aldıktan sonra bu benim tercih ettiğim yöntem olacaktır.
Yardımcı Yöntemler
Numaranıza alıcılar ekleyebilirsiniz.
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;
}
}
Ardından JSP'nizde:
<c:when test="${dp.status.valid}">
Bu, tüm IDE'lerde desteklenir ve henüz EL 3.0'ı kullanamıyorsanız da çalışacaktır. Şu anda yaptığım şey bu çünkü tüm mantığı numaramda saklı tutuyor.
Ayrıca, numaralandırmayı depolayan değişkenin boş olması mümkünse dikkatli olun. Kodunuz boş olmadığını garanti etmiyorsa, önce bunu kontrol etmeniz gerekir:
<c:when test="${not empty db.status and dp.status.valid}">
Bu yöntemin JSP'de bir ara değer belirlediğiniz yöntemlerden daha üstün olduğunu düşünüyorum çünkü numaralandırmayı kullanmanız gereken her sayfada bunu yapmanız gerekiyor. Bununla birlikte, bu çözümle alıcıyı yalnızca bir kez bildirmeniz gerekir.