- JSTL 제약사항 - 상수
- 日常茶飯事
- 2009. 2. 24. 13:42
간단하지만 편리한 기능때문에 JSP에서 JSTL 사용을 적극 권장하고 있다.
그러나 JSTL은 Java Bean에만 접근이 가능하고, 인자없는 getter만 사용가능하다.
상수를 참조할수도 없다.
그래서 하드코딩을 해야 한다.
- 그래서 isAdmin()을 추가한다.
- 설계시점에 고려를 해서 뷰레이어가 단순해지도록 해야 한다.
뷰레이어에 Java코드를 사용하거나 상수를 사용하지 않는 것이 좋다.
그러나 JSTL은 Java Bean에만 접근이 가능하고, 인자없는 getter만 사용가능하다.
상수를 참조할수도 없다.
public class User{ private String name; private String userType; private String birthDay; //setter and getter } <c:if test="${S_USER.userType == 'admin'}">관리자</c:if>Constants.TYPE_ADMIN 이라는 상수가 있는데 참조할 수가 없다.
그래서 하드코딩을 해야 한다.
- 그래서 isAdmin()을 추가한다.
public boolean isAdmin(){ return userType.equals(Constants.TYPE_ADMIN); } <c:if test="${S_USER.admin}">관리자</c:if>- JSTL 구문에서 상수를 직접 사용할수 있도록 하자.
<% Map constants = new HashMap(); constants.put("TYPE_ADMIN", Constants.TYPE_ADMIN); constants.put("TYPE_EMP", Constants.TYPE_EMP); application.setAttribute(Constants.class.getSimpleName(), constants); %> <c:if test="${applicationScope.Constans.TYPE_ADMIN == sessionScope.S_USER.userType}">관리자</c:if> <c:if test="${Constans.TYPE_EMP == S_USER.userType}">직원</c:if>
- 설계시점에 고려를 해서 뷰레이어가 단순해지도록 해야 한다.
뷰레이어에 Java코드를 사용하거나 상수를 사용하지 않는 것이 좋다.
Recent comment