It very-very old issue:
Suppose that you have follow one.jsp:
In sample above, one.jsp hold definition of panel, and header will highlight "One" tab. the two.jsp will look like one.jsp excluding panel definition, so it better to have header jsp as static include.
Bu inside of header.jsp we not put tablib definitions and imports, so all tags in IDEA editor will in red as error.
It true, but header jsp will not using as signle module, and IDEA did not know about that.
We can put duplicate definition to each header.jsp and similar files to fix it problem, but it may force troubles on JSP compilation, becouse size of entire JSP is to big. For example Oracle Orion will not compile JSP large that 65KB - you need break your JSP using jsp:include tags or remove all redutant imports and taglibs definitions.
So, my request is make "invisible definitions" for JSP. Its like that you put at begin of JSP some definitions, but in real file not imports and definitions.
We just define that follow JSP code will appended virtualy to all JSP and IDEA will know about imports and tags, even we have not imports and definitions in real file.
Virtual definition of sample above is:
Then IDEA editor open any JSP file it append to top virtual definition:
header.jsp in IDEA editor (virtual definition is readonly):