EL 不会被解释,并且在生成的 HTML 输出中显示为普通格式 [重复]

问题描述 投票:0回答:1

我正在使用Struts1和JSP。我可以使用

<bean:write>
标签访问表单属性,但无法使用 JSTL 执行此操作。为什么不呢?我的表格是
DynaActionForm

此语句有效:

<bean:write name="myForm" property="origin"/>

这不起作用,显示 ${myForm.map.origin} 普通香草:

<c:out value="${myForm.map.origin}"/>

这也不起作用,显示 ${myForm.origin} 普通香草:

<c:out value="${myForm.origin}"/>
jsp jstl el struts-1
1个回答
4
投票

如果某个地方 Servlet/JSP、JSTL 和/或 web.xml 版本不匹配,就会发生这种情况。在 Servlet 2.3/JSP 1.2 期间,EL 是 JSTL 1.0 的一部分。在 Servlet 2.4/JSP 2.0 期间,EL 从 JSTL 移至 JSP,而 JSTL 1.1 则不带 EL。 web.xml 版本声明指示当前使用的 Servlet/JSP 版本,并且目标容器必须支持该版本。

因此,如果您在 Servlet 2.4/JSP 2.0 上使用 JSTL 1.0,或者在 Servlet 2.3/JSP 1.2 上使用 JSTL 1.1,那么您将面临这个问题。另外,如果您在 Servlet 2.4/JSP 2.0 上使用 JSTL 1.1,但 web.xml 声明符合 Servlet 2.3(或不包含任何版本声明),那么您也将面临这个问题。

所有内容都在我们的 JSTL wiki 页面中进行了解释。您还可以在其中找到正确 JSTL 版本的下载链接以及正确版本特定的 web.xml 声明的示例。

另一个可能的原因是 JSP 顶部有

<%@page isElIgnored="true"%>
声明或
<jsp-config><el-ignored>true</el-ignored></jsp-config>
中的
web.xml
,但这是一个太明显的原因,不容忽视。

© www.soinside.com 2019 - 2024. All rights reserved.