2012-07-11 3 views
0

errorbox라는 Map<String, Vector<ErrorMessage>>을받는 (유효성 검사 후) jsp가 있습니다. 여기에는 페이지의 속성 별 오류 목록이 포함됩니다. 동일한 jsp는 데이터의 초기 입력에도 사용되며이 경우에는 사용할 수있는 맵이 없습니다. 내가 기대EL 빈 조건이 예상대로 작동하지 않습니다.

<c:if test="${not empty errorList}"> 
    <div class="warningbox"> 
     <div class="warning"> 
      <c:forEach var="error" items="${errorList['PropertyAttribute.KIND']}"/> 
       test: ${error.errorMessage} 
      </c:forEach> 
     </div> 
    </div> 
</c:if> 

것들 :
1. errorList가 존재하지 않는 처음으로 양식을 작성 (도 확인하여 검증 나는 다음 식을 만들어 이물이

실제로 body가 실행되지 않는 경우 ... 이유?
2. forEach 본문이 실행되지 않아야합니다. 나중에 페이지의 결과는 "test :"입니다. 이것은 단지 우스꽝 스럽다.

중요하지 않을 수도 있습니다. Google 앱 엔진을 사용합니다.

+0

@JB 니제트. 위의 100 % 정확한 코드는 아닙니다. 현재 제 코드를 사용할 수 없으며 문제를 설명하는 것입니다. $ {errorList [ 'attributeName']} – Juru

+0

코드를 실제 코드로 변경했습니다. – Juru

답변

1

나는 세 가지 가능성을 참조하십시오

  1. errorList (정말 errorMap를 지정해야하는) (하지만 당신은 그것을 배제)
  2. 이 페이지가 빈 요청 속성에 존재하는, 그리고, 또는 세션 또는 비어 있지 않은 errorList이라는 응용 프로그램 범위 특성 ${not empty requestScope.errorList}을 사용하여이를 제외 할 수 있습니다.
  3. EL이 무시되거나 JSP에서 핵심 태그 라이브러리가 선언되지 않았기 때문에 페이지에 "test"가 표시됩니다. 생성 된 HTML 코드가 어떻게 보이는지 확인하십시오.
+0

감사합니다, 그것을 시도합니다! – Juru

+0

해결되었습니다! 나는 핵심 라이브러리의 포함에 오타가 있었다, 고마워! – Juru

+0

또한 EL이 Java 클래스에 직접 액세스 할 수 없으므로 내 예제에서는 열거 형 PropertyAttribute에 직접 연결할 수 없습니다. 이를 극복하기 위해 <% = PropertyKind.KIND.toString() %>를 사용하여 EL에서 새 var를 설정해야했습니다. 그 새 var를 사용하면지도상의 키가 작동합니다. 그러나 나에게 이것은 EL에서 누락 된 것입니다. 내 페이지를보다 동적으로 만들어 주므로 양식 항목 이름을 변경할 수있는 곳은 하나뿐입니다. – Juru

관련 문제