Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

JSP EL (Expression Language) causing problems in Eclipse

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.

like image 706
jackocnr Avatar asked Nov 24 '09 15:11

jackocnr


People also ask

What is JSP EL expression?

JSP Expression Language (EL) makes it possible to easily access application data stored in JavaBeans components. JSP EL allows you to create expressions both (a) arithmetic and (b) logical.

Which will enable expression language in JSP?

1.1 Syntax of Expression Language (EL) To enable the EL expression in a JSP, developers need to use following page directive. To get a better idea, on how expression works in a JSP, we will see the below example where EL is used as an operator to add two numbers and get the output.

What are the benefits of IS JSP Expression Language?

The main purpose of it to simplify the process of accessing data from bean properties and from implicit objects.By using JSP Expression Language you can get data from javaBeans,maps,arrays and lists that have been stored as attributes of a web application. You can use EL instead of scriptlet.


1 Answers

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.

like image 164
BalusC Avatar answered Oct 05 '22 18:10

BalusC