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

7

我的系统:Ubuntu 9.10。Eclipse 3.5.1,使用Java EE 1.2.1(手动安装 - 不是从Synaptic安装的)。Web开发人员工具3.1.1。

我最近采用了别人的代码(一个动态Web项目),在Eclipse中遇到了很多错误、警告和不正确的语法高亮。我已经将问题缩小到这4行代码(创建一个新的动态Web项目,然后一个新的JSP页面,并将其放入body中):

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

错误/警告/语法高亮不正确

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

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

第2行:')'下面的红色错误线:此标记后应该尝试尝试。

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

第3行:关闭div的'<'下面的黄色警告线:此行有多个注释 找到这一行:1)在文本字符串中使用了无效字符($ {5} <%}%>)。2)在文本字符串中使用了无效字符($ {5} <%}%>)。

第3行:'/ div'为黑色和紫色(用于scriptlet代码?)而不是HTML代码的绿色。

第4行:开头和结尾的scriplet标签'&lt;%'和'%&gt;'为黑色,而不是橙色

页面在浏览器中按预期工作:您会五次获得“5”。如果将第1行的空引号更改为“yes”,然后保存,关闭编辑器中的文件,在项目资源管理器中右键单击它>验证,然后重新打开它:所有错误/警告/不正确的语法高亮都会消失,除了第一个(无效字符)。这非常恼人。如有任何想法,敬请赐教。


是的,Eclipse JSTL编辑器的支持很差。 - Jonathan Feinberg
有人能否确认相同的行为(如果您创建一个新的动态Web项目,然后创建一个新的JSP页面,并将上述引用代码放入html正文中)?您可能需要保存、关闭、验证并重新打开以查看错误/警告。谢谢。附:这是另一个(可能相关的)问题;为什么只有在保存、关闭、验证和重新打开文件后才会出现新的错误/警告?这使得它有点难以使用... - jackocnr
1个回答

14

Eclipse WTP很棒,但对我来说,这个问题在Eclipse WTP中是一个巨大的失败。他们似乎正在解决这个问题,但在那之前,我只需通过Web>JSP Files>Validation>滚动到底部并将所有EL验证设置为“忽略”,在工作区首选项中禁用/设置为忽略与此相关的所有复选框。然而,这似乎并不能消除每一个警告/错误,但至少可以减少烦恼。

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

对我来说,这些症状让我想到WTP使用regexp而不是基于堆栈的解析器来验证HTML/JSP/EL。这在结构化标记的情况下是严重不可取的


抱歉,我不知道如何发送私人消息。请查看以下答案评论。据我理解,这是您博客中的一些要点。https://dev59.com/5mIj5IYBdhLWcg3wGRiM#22266892 - gstackoverflow
10年过去了,Eclipse似乎仍然无法处理JSTL / EL。如果我拿一个在Netbeans中完全正常的应用程序,在最新的Eclipse中打开,Eclipse验证器会告诉我我的语法有很多错误。我尝试禁用全局验证并将我的web.xml从3.0更新到3.1,但仍然没有改善。现在我记得为什么十年前选择了Netbeans。 - Ryan
@Ryan:这些天,我喜欢使用JBoss Tools插件。不确定它是否也适用于JSP文件,因为我只使用Facelets文件。 - BalusC

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接