2008-10-02 1 views
14

Scriptlet을 사용하지 않고 JSP 내에서 Enum 값을 사용하는 방법이 있습니까?JSP 내부의 열거 형

 

<%@ page import="com.example.Direction" %> 
... 
<p>Direction is <%=foo.direction.getFriendlyName()%></p> 
<% if (foo.direction == Direction.ASC) { %> 
<p>That means you're going to heaven!</p> 
<% } %> 
 

:

package com.example; 

public enum Direction { 
    ASC, 
    DESC 
} 

그래서 JSP에서 나는 당신이 필드로 열거 내에서 방향에 대한 웹 친화적 인 텍스트를 구현할 수있는이

<c:if test="${foo.direction ==<% com.example.Direction.ASC %>}">... 

답변

17

그런 짓을 할 하지만 뷰와 모델을 섞어서 사용합니다. 간단한 용도로는 뷰에 독립적 일 수 있습니다 ("오름차순", "내림차순"등).

JSP 페이지에 직선 자바를 넣는 것을 좋아하지 않는 한, 비교와 같은 기본 사항에 사용될 때도 마찬가지입니다.

1

당신은 단순히 문자열로 열거 값에 대해 확인할 수는 :

<c:if test="${foo.direction == 'ASC'}">... 
+3

하드 코드 된 문자열 사용은 좋지 않은 아이디어입니다. – sjain

+0

하드 코딩 된 문자열은 피하십시오. 열거 형이 변경되면 어떻게 될까요? – user2447161

+0

아마도 이것이 최선의 해결책은 아닙니다. 하지만 JSP 페이지에서 부피가 큰 Java 코드보다 여전히 좋습니다. – saidfagan

-1

우리가 너무

여기에 이름을 바꿉니다 리팩토링 할 때 장점은

<c:set var="ASC" value="<%=Direction.ASC%>"/> 
<c:if test="${foo.direction == ASC}"></c:if> 

생각과 같이 수행 할 수 있습니다

+0

왜 취소하지 않으셨습니까? 이유를 말씀해주십시오. –

+0

JSP 표현식이 허용 된 응답을 보았 기 때문에 그는 그것을 사용하고있다. –