Almost everywhere you can read that you should use EL instead of scriptles in JSP. And I agree that you should not use any JAVA code in JSP except for calling getter methods on model objects. This is quite obvious for me and I don't need any clarification here. But there is this one thing that I really cannot understand is the lack of support for EL in Eclipse IDE.
Let's start with comparing some code. First EL example:
And now some scriptlet/JSP expression example:
<jsp:useBean id="user" class="com.mycompany.User"> <%= user.getName() %> <%= user.getSurname() %> </jsp:useBean>
It clearly visible that EL is more elegant. However, Eclipse doesn't provide any autocompletion nor refactoring support for EL. And for JSP expressions it works like a charm. If you delete getName() method from Java class, JSP validator will show you an error during compilation. If you rename the method, all the connected JSP files will update automatically. Moreover, even when you are looking for references to method getName(), Eclipse will show you all calls across Java/JSP files (provided you used JSP expressions/scriptlets). And none of these features are available for EL.
Some of the programmers might say that they don't really care and EL syntax is much better for them, period. But I work with a quite complex legacy code (that I didn't write) in my current project and believe me that the refactoring of EL/model objects is a nightmare. There are a lot of DTO objects extending and composing other DTO objects that are being used on multiple JSP views. Every change is difficult, because I cannot tell at compile time if I didn't break anything.
Based on that experience I just cannot understand how anybody could suggest using EL instead of JSP expressions. Please tell me that I'm missing something and that either using JSP expressions is correct (in my example) or that there is a way to enable all the advantages of using type safety with EL.
I know that IntelliJ has better support for JSP, but I would like to focus on Eclipse first. I hope that there are still some people working on JSP projects on Eclipse/Spring Tool Suite.