2012-01-11 6 views
1

나는 그러나 다음과 같은 예외가 생성되는 내 JSP의 입력에 일부 자바 코드를 시도하고있다 :JSP의 Java 코드가 오류를 생성하는 이유는 무엇입니까?

org.apache.jasper.JasperException: /Home.jsp(31,8) PWC6203: Scripting elements (<%!, <jsp:declaration, <%=, <jsp:expression, <%, <jsp:scriptlet) are disallowed 

내 JSP는 if 문을 포함하고 데이터를 확인합니다. 이 일치하는 경우, 일부 HTML 코드가 표시되고, 그렇지 않으면 다른 코드는 이러한 유형의 오류가하십시오 발생하는 이유 사람이 알고 있나요

<% String username = session.getAttribute("loggedIn").toString(); 
       String actual = "${message.message}"; 
       if(username.equals(actual)){%> 
       <div style="background-color:#fff380;"> 
       ... 
       </div> 
      <%} else { %> 
       <div> 
       ... 
       </div> 
      <%}%> 

표시됩니다? 고마워요

+0

'String actual = "$ {message.message}";'. AFAIK EL은 스크립틀릿과 함께 작동하지 않습니다. –

+2

@Samir - 그 질문은 어떻게 관련이 있습니까? 이 오류에 대해서는 전혀 언급하지 않았습니다. –

+0

@HarryJoy는 메시지를 얻을 수있는 또 다른 방법이 있습니까? 'message'는 메시지 목록 중 하나이며 html은 핵심 taglib을 사용하여 이러한 메시지를 반복합니다. 세션에서 직접 메시지를 가져 오려고했지만 오류가 발생했습니다. – ict1991

답변

2

Sciptlet 사용이 무효로 설정되었을 가능성이 있습니다 (http://www.java-samples.com/showtutorial.php?tutorialid=548 참조). 그리고 스크립틀릿은 더 이상 JSP에서 사용되어서는 안되기 때문에이 선택이 현명한 선택이었습니다.

<c:choose> 
    <c:when test="${loggedIn == message.message}"> 
     ... 
    </c:when> 
    <c:otherwise> 
     ... 
    </c:otherwise> 
</c:choose> 

는 또한, scriplet이 유효한 경우에도, 당신은 스크립틀릿 코드 내부에 JSP EL을 사용할 수 없습니다 다음 JSTL과 EL을 사용합니다.

+0

I 세션에 저장된 변수로 동등성을 수행하고자합니다. 엘을 얻는 방법이 있습니까? 왜냐하면 나는 자바 코드를 사용하고 있기 때문에 여전히 오류가 발생하고있다. – ict1991

+0

그래, 고마워. 내가 해결 했어. – ict1991

+0

내 대답의 코드가 그랬어. EL은 먼저 페이지 범위에서 속성을 찾은 다음 요청 범위에서 다음 세션 범위에서 속성을 찾은 다음 응용 프로그램 범위입니다. 세션 범위를 구체적으로 지정하려면 sessionScope.loggedIn을 사용하십시오. JSP를 사용할 때 실제로 마스터해야하기 때문에 JSP EL에 대한 자습서를 찾으십시오. –

관련 문제