2016-05-10 5 views
0

次のコードでjstlタグがc:と一緒にc:chooseタグを使用しようとしましたが、式が正しく評価されません。セッションスコープにBean Sellerを正しく設定するサーブレットがあります。jstlを使用して<c:when>タグが式を正しく評価していません

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
pageEncoding="ISO-8859-1"%> 

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>  
<!DOCTYPE html> 
<html lang="en"> 
    <c:choose> 
     <c:when test="${not empty sessionScope.seller}"> 
      <c:out value="${seller.firstName}"/> 
     </c:when> 
     <c:otherwise> 
      <c:out value="none"/> 
     </c:otherwise> 
    </c:choose> 
</html> 

サーブレット・コードは以下のとおりである。

index.jspページがロードされると、値「なし」は「ジョン」代わりのfirstNameの値に印刷されていない
package com.senachat.presentation; 

import java.io.IOException; 

import javax.servlet.RequestDispatcher; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
import javax.servlet.http.HttpSession; 

import com.senachat.domain.Seller; 

public class SenachatServlet extends HttpServlet{ 

@Override 
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 

    resp.setContentType("text/html"); 

    Seller seller = new Seller(); 
    seller.setFirstName("John"); 

    HttpSession session = req.getSession(); 
    session.setAttribute("seller", seller); 

    RequestDispatcher dispatcher = req.getRequestDispatcher("/WEB-INF/jsp/index.jsp"); 
    dispatcher.forward(req, resp); 
} 

@Override 
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { 
    this.doGet(req, resp); 
} 

}

。ここで何が間違っているのか分かりません。

+0

「index.jspページがロードされているとき」と言っています。 index.jspを直接参照すると言ってもいいですか?またはサーブレットを参照してからindex.jspに転送されますか? – rickz

+0

@rickzも同じ考えをしていましたが、WEB-INFフォルダにjspがあることはできません。 –

+1

良い点、Angelo。 – rickz

答えて

0

さらなる調査の後、私は表現言語のステートメントが評価されていないことに気付きました。

だから私は、それはELはサーブレット仕様2.3およびそれ以前のため、デフォルトでは無効になってmentionned次のリンクhttps://docs.oracle.com/javaee/1.4/tutorial/doc/JSPIntro7.html

でのドキュメントになりました。そして確かに私のweb.xmlにサーブレット仕様2.3の古いバージョンを宣言しました

関連する問題