views:

1209

answers:

2

My system: Ubuntu 9.10. Eclipse 3.5.1 with Java EE 1.2.1 (manual install - NOT from synaptic). Web Developer Tools 3.1.1

I've recently adopted someone else's code (a Dynamic Web Project), and run into lots of errors, warnings and incorrect syntax highlighting in Eclipse. I've narrowed it down to these 4 lines of code (create a new Dynamic Web Project, and then a new JSP page, and put this in the body):

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

Errors / Warnings / Incorrect syntax highlighting

line1: yellow warning line under '<': Invalid character used in text string (${(1<2)? "yes" : "no"}).

line2: red error line under 'f': Multiple annotations found at this line: 1) Syntax error, insert "Finally" to complete TryStatement. 2) Syntax error, insert "}" to complete ClassBody

line2: red error line under ')': Syntax error on token ")", try expected after this token

line3: yellow warning line under 'div': No end tag (/div).

line3: yellow warning line under '<' of closing div: Multiple annotations found at this line: 1) Invalid character used in text string (${5} <%}%>). 2) Invalid character used in text string (${5} <%}%>).

line3: '/div' is black and purple (for scriptlet code?) instead of green for HTML code

line4: The opening and closing scriplet tags '<%' and '%>' are black instead of orange

The page works as expected in a browser: you get '5' five times. If you change the empty quotes on line 1 to "yes" then save, close the file in the editor, r click it in the project explorer > validate, then re-open it: all errors / warnings / incorrect syntax highlighting disappear, except the first one (invalid character). This is incredibly irritating. Any thoughts would be greatly appreciated.

+3  A: 

Eclipse WTP is great, but exactly this problem is an epic fail in Eclipse WTP for me as well. They seem to be working on that, but until then I just disable/set-to-ignore all of the validation related to this stuff in the workspace preferences through Web > JSP Files > Validation > scroll list to very bottom and set all EL validation settings to Ignore. Also in the main Validation preference uncheck all checkboxes related to JSP. This however doesn't seem to remove every warning/error, but it at least minimizes the annoyance.

IntelliJ IDEA handles JSP/EL validation much better.

To me, the symptoms make me think that WTP is using regexp instead of a stackbased parser to validate HTML/JSP/EL. This is a big no-no in case of structured markup.

BalusC
A: 

I think you should think twice before saying things like "x is crap", where x is an open/free source product. Somebody put a lot of work into x, to get it working at all. And then they gave it away for nothing! Submit quality bug reports, request improvements, or even better, provide patches! And even then, be more respectful than "x is crap". Things that are open/free source and uncrappy all started out crappy, then improved because people like you spent their energy contributing rather than moaning.

-1. This "answer" contributes nothing useful.
Matt Ball