JSTL как вывести данные из запроса - PullRequest
1 голос
/ 17 января 2011

У меня есть сервлет, который помещает что-то в запрос, но я не могу вызвать это с помощью jstl.Что я делаю не так?

<%@ page import="beans.Patient"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri='http://java.sun.com/jstl/fmt' prefix='fmt' %>
<jsp:useBean id="patBean" class="beans.Patient" scope="session"/>
<c:set var="patientName" value="${patient.name}"/>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
</head>
<body>
test
<form action="PatientAction" method="post">
<input type="text" name="patientId" id="patientId"></input>
<input type="submit"/>
</form>

<c:out value="${patientName}" />
<c:out value="${patBean.name}" />

Ответы [ 2 ]

4 голосов
/ 17 января 2011

Вам не нужно беспокоиться о <useBean>, когда вы используете JSTL, просто обратитесь к бобу напрямую. Поэтому, если ваш сервлет поместил Patient в сеанс, вы можете получить его имя, используя:

<c:out value="${patient.name}" />
1 голос
/ 17 января 2011

атрибуты запроса доступны через имя, в которое они были введены. Если у вас был request.setAttribute("foo", fooValue), то он доступен через ${foo}. Это верно, если вы находитесь в пределах одного запроса. Это означает, что сервлет должен выполнить forward , а не redirect . Если происходит перенаправление, это новый запрос, и старые значения теряются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...