我使用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">发布于 2012-05-22 12:50:12
Scriptlet和EL不共享相同的变量作用域。Scriptlet变量在JSP主体中声明,而EL变量则被设置为页面、请求、会话或应用程序范围的属性。
因此,要使ansokanInfo在EL中可用,您需要在其中一个作用域中设置它。假设它表示请求范围内的数据,请这样做:
request.setAttribute("ansokanInfo", ansokanInfo);您可以在第一次对此变量进行EL计算之前在scriptlet中执行此操作。但更明智的做法是在预处理servlet中执行此操作。
要正确学习和理解这些概念,请查看我们关于必备主题的wiki页面:
https://stackoverflow.com/questions/10684309
复制相似问题