【问题标题】:netbeans 7.0 shows error in Struts2 select tag .. netbeans version 6.9 does not show this error [duplicate]netbeans 7.0 在 Struts2 选择标记中显示错误.. netbeans 6.9 版没有显示此错误 [重复]
【发布时间】:2011-05-09 15:56:31
【问题描述】:
<s:select
  name="PenaltyPercentage"
  id="PenaltyPercentageId"
  list="#{'7.5%':'7.5%', '15.0%':'15.0%'}" <!-- shows error in this line -->
  headerKey=""
  headerValue="Please Select"
  emptyOption="false">
</s:select>

错误信息如下所示

Encountered ":" at line 1, column 9.
Was expecting one of:
"}" ...
"." ...
"]" ...
">" ...
"<" ...

【问题讨论】:

标签: java struts2 netbeans-7


【解决方案1】:

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(这对某些人来说不是一个有吸引力的选项)或显式声明该映射,如图所示。

【讨论】:

  • 由于此答案未被接受,您能否进一步说明您在寻找什么?
  • #@java.util.LinkedHashMap@{ "foo" : "foo value", "bar" : "bar value" } 这解决了问题。非常感谢四元数。你是明星。
  • 我使用完整形式解决了,但仍然在某些地方我在 javascript 中使用 s:property, s:iterator 它给了我错误,更奇怪的是它在页面上给出了错误,没有指向出行号。我能够追踪该位置,并且 100% 确定,即使是正常的 在包含在 javascript 中时也会出现错误。有什么解决办法吗?
猜你喜欢
  • 1970-01-01
  • 2019-06-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-30
  • 2019-02-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多