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);
}
}
。ここで何が間違っているのか分かりません。
「index.jspページがロードされているとき」と言っています。 index.jspを直接参照すると言ってもいいですか?またはサーブレットを参照してからindex.jspに転送されますか? – rickz
@rickzも同じ考えをしていましたが、WEB-INFフォルダにjspがあることはできません。 –
良い点、Angelo。 – rickz