Netbeans 7 使用现在使用# 字符的JSP EL 2.1。
对我来说(Netbeans IDE 7.0 RC1)它编译得很好并且可以工作,尽管该行被标记为错误。如果 glassfish 不会执行 jsp,则以下链接显示如何在 JSP 2.1 容器中禁用 JSP EL(以下链接的底部)。
http://struts.apache.org/2.0.14/docs/ognl.html
可能此时最简单的解决方案就是添加地图的类:
#@java.util.LinkedHashMap@{ "foo" : "foo value", "bar" : "bar value" }
在这个线程中找到: http: //struts.1045723.n5.nabble.com/s2-JSF-JSP-EL-vs-OGNL-EL-td3528303.html
有关 JSP EL 2.1 的信息,请参阅:http: //jcp.org/aboutJava/communityprocess/final/jsr245/index.html
您可能只是在展示问题,但可以肯定的是,如果您提供列表而不是地图,则返回到服务器的值将与显示的值相同。所以下面会产生相同的选择框并且不会产生错误:
<s:select
list="{'7.5%','15.0%'}" <!-- does not show error -->
headerValue="Please Select"
emptyOption="false">
</s:select>
我花了一点时间看看是否可以在 Netbeans 7 中更改 JSP EL 版本而没有成功,还试图找到一种方法来禁用 JSP EL 错误检查但没有成功。因此,如果您必须在 JSP 中使用 OGNL 映射,请禁用 JSP EL(这对某些人来说不是一个有吸引力的选项)或显式声明该映射,如图所示。