두 가지 가능성이 더 있습니다.
JSP EL 3.0 상수
버전 3.0 이상의 EL을 사용하는 한 다음과 같이 페이지로 상수를 가져올 수 있습니다.
<%@ page import="org.example.Status" %>
<c:when test="${dp.status eq Status.VALID}">
그러나 일부 IDE는 아직이를 이해하지 못 하므로 (예 : IntelliJ ) 런타임까지 오타를 입력해도 경고가 표시되지 않습니다.
적절한 IDE 지원을 받으면 이것이 제가 선호하는 방법입니다.
도우미 방법
열거 형에 게터를 추가 할 수 있습니다.
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을 사용할 수없는 경우에도 작동합니다. 이것은 모든 논리를 내 열거 형으로 묶어두기 때문에 지금 내가하는 일입니다.
또한 열거 형을 저장하는 변수가 null이 될 수있는 경우에도주의하십시오. 코드가 null이 아님을 보장하지 않는 경우 먼저 확인해야합니다.
<c:when test="${not empty db.status and dp.status.valid}">
이 방법은 열거 형을 사용해야하는 각 페이지에서 설정해야하기 때문에 JSP에서 중간 값을 설정하는 방법보다 우수하다고 생각합니다. 그러나이 솔루션에서는 getter를 한 번만 선언하면됩니다.