一尘不染

JSP EL(表达语言)在Eclipse中引起问题

jsp

我的系统: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>
<%}%>

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

第1行:“ <”下方的黄色警告行:文本字符串中使用了无效字符($ {(1 <2)?“是”:“否”})。

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

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

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

第3行:关闭div的“ <”下方的黄色警告线:在此行发现多个注释:1)文本字符串中使用的字符无效($ {5} <%}%>)。2)文本字符串($ {5}
<%}%>)中使用的字符无效。

第3行:“ / div”是黑色和紫色(用于scriptlet代码?),而不是绿色(用于HTML代码)

第4行:开头和结尾的Scriplet标签’<%’和’%>’是黑色而不是橙色

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


阅读 377

收藏
2020-06-08

共1个答案

一尘不染

Eclipse WTP很棒,但是对我来说,正是这个问题在Eclipse
WTP中也是史诗般的失败。他们似乎正在努力解决这个问题,但是直到那之前,我只是通过
Web > JSP文件 > 验证

滚动列表在最底端禁用/设置以忽略与工作区首选项中与此内容相关的所有验证,并将所有EL验证设置为最底部设置以忽略。同样在主 Validation
首选项中,取消选中与JSP相关的所有复选框。但是,这似乎并不能消除所有警告/错误,但至少可以将烦恼降到最低。

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

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

2020-06-08