所以我有一个主JSP索引页面"index.jsp",它有几个包含.就像是,
<%@ include file="/WEB-INF/views/includes/jstl/include.jsp" %>
<%@ include file="/WEB-INF/views/includes/licenses/license.jsp" %>
<%@ include file="/WEB-INF/views/includes/generalHtml/header.jsp" %>
<%@ include file="/WEB-INF/views/includes/navigation/navbar.jsp" %>
<%@ include file="/WEB-INF/views/includes/generalHtml/footer.jsp" %>
Run Code Online (Sandbox Code Playgroud)
"include.jsp"包含字符串"String basePath = request.getContextPath();".
"navbar.jsp"使用"basePath",但Eclipse在"navbar.jsp"的任何一行上放置一个红色X,该行使用"basePath",消息"basePath无法解析".
我的webapp工作正常,但想知道可能导致这种情况的原因,或者它是否可以解决?或者也许有办法让Eclipse忽略这个?我只想让假阳性的红色X消失.我想Eclipse并不理解"navbar.jsp"从"include.jsp"获取"basePath",因为它与"index.jsp"一起编译.
我继承了一个Web应用程序,在Eclipse中进行设置时,它会显示特定JSP中的错误.
错误在Problems视图中没有与它们相关的描述,并且单击它们会将我带到JSP的顶部,其中红色错误下划线出现在字符串的中间,如下所示:
<%@ page erro[rPage="/basicError.j]sp" %>
[<%@ page import="javax.s]ervlet.ServletContext" %>
Run Code Online (Sandbox Code Playgroud)
想象一下,由[]括起来的部分下面有一个红色的"错误"下划线(粗体等不会在此代码段中显示,除非它在代码段中,否则我无法显示代码,因此使用[和].
其他错误示例:

单击行左侧的红色"X"图标不会执行任何操作.
我已经尝试重新导入项目,刷新,验证,移动线等,但我总是得到这个错误.
有谁知道这里发生了什么?
我的系统: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行的空引号更改为"是",则保存,在编辑器中关闭文件,在项目浏览器中单击它>验证,然后重新打开它:所有错误/警告/错误语法突出显示消失,除非第一个(无效字符).这令人难以置信的刺激.任何想法将不胜感激.
我在eclipse indigo的jsp中添加以下EL时遇到错误.
<form action="${pageContext.request.contextPath}/user">
...
</form>
Run Code Online (Sandbox Code Playgroud)
但是,应用程序运行正常,没有任何编译错误.我仔细检查了servlet-api 2.5和jst 1.2 jar是否在Eclipse IDE的类路径中.
如果我删除${pageContext.request.contextPath}它不会显示任何错误.
任何人都可以帮我解决这个错误吗?