【问题标题】:JSTL how to output data from requestJSTL如何从请求中输出数据
【发布时间】:2011-06-10 11:54:08
【问题描述】:

我有一个 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}" />

【问题讨论】:

    标签: java jsp jstl


    【解决方案1】:

    在使用 JSTL 时,您无需为&lt;useBean&gt; 操心,直接引用 bean 即可。因此,如果您的 servlet 将 Patient 放入会话中,您可以使用以下方法获取其名称:

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

    【讨论】:

    【解决方案2】:

    请求属性可以通过它们被放入的名称来访问。如果您拥有request.setAttribute("foo", fooValue),则可以通过${foo} 访问它。如果您在同一个请求中,这是正确的。这意味着 servlet 必须执行 forward 而不是 redirect。如果发生重定向,那就是新请求,旧值会丢失。

    【讨论】:

    • 它只是以文本“${patient.name}”的形式出现
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 2015-04-08
    • 2021-12-17
    相关资源
    最近更新 更多