2014-05-18 4 views
12

세션 속성이 비어 있으면 JSTL에서 테스트하려고합니다. 그러나 속성은 비어 있습니다. JSTL은 비어 있지 않은 속성으로 간주합니다.JSTL : 문자열이 비어 있는지 확인하십시오.

이것은 JSTL로 대체하려는 하드 코드입니다. 이 코드는 올바르게 작동하고 있습니다.

<% if (request.getAttribute("error") != null) { %> 
    <div class="alert alert-danger"> 
     <strong>Oh snap, something's wrong, maybe the following error could help you out?<br /></strong> 
     <%= request.getAttribute("error")%> 
    </div> 
<% } %> 

이 코드를 JSTL로 바꿉니다. 이 옵션을 선택하면 error-attribute는 비어 있지 않지만 비어 있습니다. session attribute이 비어있는 경우 내가 JSTL에서 테스트하기 위해 노력하고있어

<c:if test="${not empty sessionScope.error}"> 
    <div class="alert alert-danger"> 
     <strong>Oh snap, something's wrong, maybe the following error could help you out?<br /></strong> 
     <c:out value="${sessionScope.error}" /> 
    </div> 
</c:if> 
+0

당신이 페이지에서 JSTL 태그를 가져온 – gyanu

+2

JSTL 라이브러리를 추가 한이다 ** <% @ taglib uri = "http://java.sun.com/jsp/jstl/core"prefix = "c"%> ** – gyanu

+0

정말 문제였습니다. 1 시간 이상이 문제를 해결하고있었습니다. 감사합니다 :) – DaanCelie

답변

13

는 JSTL 라이브러리를 추가하고 핵심 태그 라이브러리 선언

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> 

<% if (request.getAttribute("error") != null) { %> 

의 JSTL에 해당이

<c:if test="${not empty error}"> 
+0

OP도 마찬가지입니다. – Braj

+0

requestScope를 제거하려고했으나 동일한 문제가 지속됩니다. – DaanCelie

1

당신은 세션 범위하지에서 요청 범위에 확인해야합니다. 이 범위는 다음 아래에서 위로의 모든 범위에 보이는 것 범위 (페이지없이 사용에 대해 확실하지 않은 경우

<c:if test="${not empty sessionScope.error}"> 

대신

<c:if test="${not empty requestScope.error}"> 

해야한다 , 요청, 세션 후 마지막으로 신청)

<c:if test="${not empty error}"> 
+0

변경되었지만 동일한 문제가 계속 발생합니다. 나는 또한 작업하지도 않는 범위를 삭제하려고했습니다. 이전 코드를 활성 상태로두고 그 코드가 아무 것도 생성하지 않기 때문에 속성이 비어 있다고 절대적으로 확신합니다. – DaanCelie

+0

내 편집 된 게시물을보십시오. 속성을 어디에 설정하고 있는지 코드를 공유하십시오. 'error'가 올바른 속성 이름이 아닐 수도 있습니다. – Braj

+1

'$ {공백 null}'및'$ {공백 ""}''거짓'을 반환합니다. – Braj

관련 문제