2012-01-11 12 views
1

JSPのJavaコードでエラーが発生するのはなぜですか?私はしかし、次の例外が生成されている入力に私の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

@サミール - その質問はどのように関連していますか?このエラーはまったく言及していません。 –

+0

@HarryJoyはメッセージを受け取れるもう一つの方法はありますか? 'message'はメッセージのリストの1つであり、htmlはcore taglibを使ってこれらのメッセージをループしています。セッションから直接メッセージを取得しようとしましたが、エラーが発生しました – ict1991

答えて

2

Sciptletの使用が無効に設定されている可能性があります(http://www.java-samples.com/showtutorial.php?tutorialid=548参照)。また、スクリプトレットをJSPで使用するべきではないため、この選択は賢明な選択でした。 JSTLとELを使用します。

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

、スクリプトレットが有効であった場合でも、あなたはスクリプトレットコード内のJSP ELを使用することはできません。

+0

Iセッションに格納されている変数との等価性を実行したいと考えています。それを得るための方法はありますか?私はJavaコードを使用しているので、それでも私にエラーを与えているので、 – ict1991

+0

okありがとう私はそれを解決した – ict1991

+0

私の答えのコードはそれを行います。 ELは、まずページスコープ内の属性を探し、次にリクエストスコープで次にセッションスコープで属性を探し、次にアプリケーションスコープです。セッションスコープを明確に指定する場合は、sessionScope.loggedInを使用します。 JSPを使用する際には、実際にそれをマスターする必要があるため、JSP ELに関するチュートリアルを見つけてください。 –

関連する問題