2010-01-20 2 views
5

JSP에서 Java 코드 (내 경우 엔 enum 값)를 참조 할 때 몇 가지 의견을 묻습니다.내 JSP 내에서 Java를 참조하기위한 최선의 방법

<c:if test="${actionBean.order.status eq 'complete'}">  
    show some stuff 
</c:if> 

지금, '완전한'내 코드베이스에서 열거와 관련된 값입니다

나는 현재처럼 내 JSP에서 조건부 논리가있다. JSP 내에서 열거 형을 참조하는 것이 더 좋을까요? 그렇다면 어떻게?

나는 그것이 좋은 것이 될 것이라고 생각한다 : 열거 형이 변경되면 JSP가 깨지지 않는다.

Java 코드를 JSP에 혼합하는 것은 나쁜 습관입니까? 아니면 '완료'의 가치를 복제하는 것이 더 나쁩니 까? 사전에

감사합니다.

답변

1

Java 코드를 JSP에 혼합하는 것은 나쁜 습관입니까? 아니면 '완료'의 가치를 복제하는 것이 더 나쁩니 까?

제 생각에는 기호/값의 일부 제한된 복제를 의미하더라도 Java 코드와 JSP를 혼합해서 사용하지 말아야한다는 것입니다.

이런 식으로 생각해보십시오. JSP를 "파괴 할"수있는 많은 변화가 Java 측에서 발생할 수 있습니다. 이 경우, 예를 들어, "actionBean"의 이름 인 getOrder() 또는 getStatus() 메소드가 변경 될 수 있습니다. 또는 getOrder()null 또는 다른 유형의 것을 반환 할 수 있습니다. Java 측에서 바뀔 수있는 모든 것을 걱정한다면, taglib을 전혀 사용하지 않게 될 것입니다.

0

JSP 외부에서 "일부 항목 만 표시"할지 여부에 대한 논리를 수행 할 수 없으며 항목을 표시할지 여부를 알기 위해 간단한 부울 매개 변수를 전달하면 안됩니까? 그렇게하면 열거 형 값이 중복되는 것을 방지 할 수 있으며보기 대신 컨트롤러에 해당 비트를 유지할 수 있습니다.

1

JSP에서 비교할 enum 값은 실제로는 String.valueOf(enum)과 같으며 기본적으로 정확하게 enum 이름입니다. 따라서 열거 형 이름을 변경하면 실제로 JSP 코드도 변경해야합니다. 따라서 실제 enum 개체와 비교할 때 어떤 이점도 보이지 않습니다. StringString.valueOf(enum)으로 강요 될 것이고 실제로 두 개의 String을 서로 비교해 볼 것입니다. 그냥 그대로 두십시오. JSP 파일에서 자바 코드를 참조에 관해서는

: 사전 처리 요청을하려면

모든 자바 코드는 더 붕괴 될 수 있습니다

  • 당신이 Filter class를 사용, 요청/응답을 필터링하려면

    .
  • 데이터베이스와 상호 작용하려면 DAO class을 사용하십시오.
  • 데이터를 저장/전송/액세스하려면 Javabean (DTO) class을 사용하십시오.
  • 비즈니스 로직을 실행하려면 도메인 (BO) 클래스를 사용하십시오 (전략 패턴 고려).
  • 재사용 가능한 정적 도구를 사용하려면 유틸리티 클래스 (최종 클래스, 개인 생성자)를 사용하십시오.
관련 문제