EL变量在WAS 8中不起作用

时间:2012-05-21 11:24:42

标签: jsp jstl el websphere-8

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

<%= ansokanInfo.getPSystem() %>

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

${ansokanInfo.PSystem}

我可以在${}之间写任何内容,但不会呈现。我究竟做错了什么?应该怎么做才能启用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">

1 个答案:

答案 0 :(得分:2)

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

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

request.setAttribute("ansokanInfo", ansokanInfo);

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

要正确学习和理解这些概念,请查看我们在强制性主题上的维基页面: