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

jac*_*cnr 6 eclipse jsp expression el

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

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

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

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

line1:'<'下的黄色警告行:文本字符串中使用的字符无效($ {(1 <2)?"yes":"no"}).

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

line2:')'下的红色错误行:令牌上的语法错误")",在此令牌后尝试预期

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

line3:关闭div的'<'下的黄色警告行:此行找到多个注释:1)文本字符串中使用的字符无效($ {5} <%}%>).2)文本字符串中使用的字符无效($ {5} <%}%>).

line3:对于HTML代码,'/ div'是黑色和紫色(对于scriptlet代码?)而不是绿色

第4行:开始和结束的scriplet标签'<%'和'%>'是黑色而不是橙色

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

Bal*_*usC 14

Eclipse WTP很棒,但正是这个问题对我来说也是Eclipse WTP中的一个史诗般的失败.他们似乎正在努力,但在那之前,我只是通过Web > JSP Files > Validation >滚动列表禁用/设置忽略与工作室首选项中的这些内容相关的所有验证,并设置所有EL验证设置为忽略.同样在主验证首选项中,取消选中与JSP相关的所有复选框.然而,这似乎并没有消除每一个警告/错误,但它至少可以减少烦恼.

IntelliJ IDEA可以更好地处理JSP/EL验证.

对我来说,这些症状让我觉得WTP正在使用regexp而不是基于堆栈的解析器来验证HTML/JSP/EL.在结构化标记的情况下,这是一个很大的禁忌.