0

我使用 websphere 8 和 RAD 8,这个 scriptlet 输出正确的值:

<%= ansokanInfo.getPSystem() %>

但是使用 EL 它什么也不输出:

${ansokanInfo.PSystem}

我可以在${and之间写任何东西},它不会呈现。我究竟做错了什么?应该怎么做才能启用 EL 表达式?这也不起作用:

<c:out value="${ansokanInfo.PSystem}" />

但这是有效的:

<c:forEach var="i" begin="1" end="5" >     <c:out value="${i}" />    </c:forEach> 

我的 web.xml 像这样开始:

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
4

1 回答 1

2

Scriptlet和 EL 不共享相同的变量范围。Scriptlet变量在 JSP 主体中声明,而 EL 变量应该设置为页面、请求、会话或应用程序范围的属性。

因此,要ansokanInfo在 EL 中使用它,您需要将其设置在其中一个范围内。假设它表示请求范围的数据,请执行以下操作:

request.setAttribute("ansokanInfo", ansokanInfo);

您可以在此变量的第一次 EL 评估之前在scriptlet中执行此操作。但更明智的做法是在预处理 servlet 中执行此操作。

要正确学习和理解这些概念,请查看我们关于必修主题的 wiki 页面:

于 2012-05-22T04:50:11.613 回答