我有一个servlet,它会在请求中放入一些内容,但我无法使用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}" />
答案 0 :(得分:4)
当您使用JSTL时,不需要为<useBean>
而烦恼,只需直接引用bean即可。因此,如果您的servlet将Patient
放入会话中,您可以使用以下命令获取其名称:
<c:out value="${patient.name}" />
答案 1 :(得分:1)
请求属性可通过其放入的名称访问。如果您有request.setAttribute("foo", fooValue)
,则可以通过${foo}
访问它。如果您在同一请求中,则为真。这意味着servlet必须执行转发而不是重定向。如果发生重定向,那就是新请求,旧值将丢失。