netbeans 7.0显示Struts2选择标记中的错误.. netbeans版本6.9不显示此错误
<s:select name="PenaltyPercentage" id="PenaltyPercentageId" list="#{'7.5%':'7.5%', '15.0%':'15.0%'}" headerKey="" headerValue="Please Select" emptyOption="false">
错误消息如下所示
Encountered ":" at line 1, column 9. Was expecting one of: "}" ... "." ... "]" ... ">" ... "<" ...
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
您可能只是展示了这个问题,但只是为了确保,如果您提供列表而不是地图,则返回到服务器的值将与显示的值相同。 因此,以下内容生成相同的选择框,并且不会产生错误:
headerValue="Please Select" emptyOption="false">
我花了一点时间看看我是否可以在Netbeans 7中更改JSP EL版本但没有成功,还试图找到一种方法来禁用JSP EL错误检查而没有成功。 因此,如果必须在JSP中使用OGNL映射,请禁用JSP EL(对于某些人来说这不是一个有吸引力的选项),或者如图所示显式声明映射。