【问题标题】:JSP EL (Expression Language) causing problems in EclipseJSP EL(表达式语言)在 Eclipse 中导致问题
【发布时间】:2010-12-19 22:20:28
【问题描述】:

我的系统:Ubuntu 9.10。 Eclipse 3.5.1 和 Java EE 1.2.1(手动安装 - 不是来自突触)。网络开发者工具 3.1.1

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

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

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

line1:'

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

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

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

line3:关闭 div 的“)。 2) 文本字符串中使用了无效字符 (${5} )。

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

line4: 开始和结束的 scriplet 标签 '' 是黑色而不是橙色

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

【问题讨论】:

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

标签: eclipse jsp expression el


【解决方案1】:

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

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

对我来说,这些症状让我认为 WTP 使用正则表达式而不是基于堆栈的解析器来验证 HTML/JSP/EL。如果是结构化标记,这是big no-no

【讨论】:

  • 抱歉我不知道怎么发私信。请参阅以下答案 cmets。据我了解,它在您的博客中指出。 stackoverflow.com/a/22266892/2674303
  • 10 年后 Eclipse 似乎仍然无法处理 JSTL / EL。如果我根据 Netbeans 采用了一个完美的应用程序并在最新的 Eclipse 中打开,Eclipse Validator 会告诉我我的大量语法是错误的。我已经尝试禁用全局验证并将我的 web.xml 从 3.0 更新到 3.1,但仍然没有更好。现在我想起了十年前我为什么选择 Netbeans。
  • @Ryan:这些天来,我很喜欢 JBoss Tools 插件。不确定它是否也适用于 JSP 文件,我只使用 Facelets 文件。
猜你喜欢
  • 2011-06-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-20
  • 2013-12-28
  • 1970-01-01
  • 2011-07-20
相关资源
最近更新 更多