EL未被解释,并且在生成的HTML输出中显得简单明了

时间:2012-09-13 17:42:42

标签: jsp struts jstl el

我正在使用Struts1和JSP。我可以使用<bean:write>标记访问表单属性,但我无法使用JSTL。为什么不?我的表单是DynaActionForm

此声明有效:

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

这不起作用,显示$ {myForm.map.origin} plain vanilla:

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

这也不起作用,显示$ {myForm.origin} plain vanilla:

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

1 个答案:

答案 0 :(得分: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(或者不包含任何版本声明),那么你也将面临这个问题。

所有问题都在our JSTL wiki page中解释。您还可以找到正确的JSTL版本的下载链接以及正确的特定于版本的web.xml声明的示例。

另一个可能的原因是您在JSP顶部发出了<%@page isElIgnored="true"%>声明,<jsp-config><el-ignored>true</el-ignored></jsp-config>中发现了web.xml声明,但这是一个被忽视的明显原因。