Jo Schm created TILES-597:
-----------------------------

             Summary: Eliminate the need for deploying pre-compiled JSP files 
in the WAR when using OptionsRenderer 
                 Key: TILES-597
                 URL: https://issues.apache.org/jira/browse/TILES-597
             Project: Tiles
          Issue Type: Improvement
          Components: tiles-extras
    Affects Versions: 3.0.5
            Reporter: Jo Schm


*Background*:

When pre-compiling JSPs on Tomcat the resulting servlet classes are stored 
inside the WAR in a directory, e.g. 
"${webapp.path}/WEB-INF/classes/org/apache/jsp". Additionally a 
"generated_web.xml" containing their servlet-mappings is produced and merged 
with "web.xml", thus making the Container dispatch requests for a pre-compiled 
JSP to the proper servlet directly rather than targeting the JspServlet.

Example of such a request:
{code:java}
requestDispatcher.forward("/WEB-INF/bar.jsp"){code}
Therefore: If "foo.jsp" had been pre-compiled it would be no longer needed to 
include the .jsp file in the WAR, since the compiled servlet class would 
already be available. In fact, this is how in our project we would like to 
build the WAR file, since we do not want to include resources that are not 
being used.

*Problem in OptionsRenderer:*

However this causes an exception thrown by OptionsRenderer similar to
{code:java}
java.io.IOException: None of the options existed for 
/WEB-INF/{options[searchPaths]}/bar.jsp {code}
, since OptionsRenderer's check for existence of an option merely relies on the 
existence of the JSP file.

Please consider extending the check for existence of an option: Maybe this 
could be achieved by additionally checking if a servlet-mapping exists for the 
given JSP Path. In case of pre-compiled JSPs these mappings come from the 
"generated_web.xml" and should be available through ServletContext.

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to