JSP EL(表达式语言)导致Eclipse出现问题

时间:2009-11-24 15:20:25

标签: eclipse jsp expression el

我的系统:Ubuntu 9.10。带有Java EE 1.2.1的Eclipse 3.5.1(手动安装 - 不是来自synaptic)。 Web开发人员工具3.1.1

我最近采用了别人的代码(动态Web项目),并在Eclipse中遇到大量错误,警告和错误的语法突出显示。我已经将它缩小到这4行代码(创建一个新的Dynamic Web Project,然后是一个新的JSP页面,并把它放在正文中):

${(1<2)? "" : "no"}
<%for (int i = 0; i < 5; i++) {%>
<div>${5}</div>
<%}%>

错误/警告/语法突出显示不正确

  

line1:'&lt;'下的黄色警告行:文本字符串中使用的字符无效   ($ {(1&lt; 2)?“yes”:“no”})。

     

第2行:'f'下的红色错误行:   在此行找到多个注释:1)语法错误,插入“Finally”以完成TryStatement。 2)语法错误,插入“}”以完成ClassBody

     

第2行:')'下的红色错误行:令牌上的语法错误“)”,在此令牌后尝试预期

     

第3行:'div'下的黄色警告行:无结束标记(/ div)。

     

第3行:'&lt;'下的黄色警告线关闭div:多个注释   在此行找到:1)文本字符串中使用的字符无效($ {5}&lt;%}%&gt;)。 2)文本字符串中使用的字符无效($ {5}&lt;%}%&gt;)。

     

第3行:'/ div'是黑色和紫色(对于scriptlet代码?)而不是绿色代码

     

第4行:开头和关闭的scriplet标签'&lt;%'和'%&gt;'是黑色而不是橙色

该页面在浏览器中按预期工作:您获得“5”五次。如果将第1行的空引号更改为“是”,则保存,在编辑器中关闭文件,然后在项目浏览器中单击它&gt;验证,然后重新打开它:所有错误/警告/不正确的语法突出显示消失,除了第一个(无效字符)。这令人难以置信的刺激。任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:14)

Eclipse WTP很棒,但对于我来说,这个问题在Eclipse WTP中也是epic fail。他们似乎正在努力,但在那之前我只是通过 Web &gt;禁用/设置忽略与工作区首选项中的这些内容相关的所有验证。 JSP文件&gt; 验证&gt;将列表滚动到最底部并将所有EL验证设置设置为忽略。同样在主 Validation 首选项中,取消选中与JSP相关的所有复选框。然而,这似乎并没有消除每一个警告/错误,但它至少可以减少烦恼。

IntelliJ IDEA更好地处理JSP / EL验证。

对我来说,这些症状让我觉得WTP正在使用regexp而不是基于堆栈的解析器来验证HTML / JSP / EL。在结构化标记的情况下,这是big no-no