I'd like to go ahead and voice some thanks to anyone who can help me out on
this...

Ok, I know that this has hit the list a few times before, and I've peered
into the mail-list archive (as well as my crystal ball) to figure this one
out, but I was wondering if someone could give me a little validation:

We already have an existing application built on the Struts framework (works
great, woo-hoo!), but now we'd like to precompile the JSPs for production
purposes (current production uses non-precompiled JSPs).  However, we'd like
to retain the ability to use non-precompiled JSPs for development purposes,
QA, etc.  I understand how to precompile the JSPs, and they should reside (I
think) in the WEB-INF/classes folder.

As I understand it, to enable precompilation with struts, one has to define
a servlet-mapping (for each JSP class) in the web.xml file, and then refer
to these mappings' <url-pattern> values in your <forward> tags within the
struts-config.xml.

To switch between precompiled and non-precompiled JSPs, one would swap out
web.xml files (one w/ servlet mappings, another without), and switch your
build target to package either JSP pages or their corresponding compiled
classes.

So, here's an example (as I see it) of using a precompiled JSP servlet
mapping w/ a Struts forward (let me know if this is wrong):

<!-- From struts-config.xml --!>

<forward name="new"   path="/WEB-INF/jsp/common/login.jsp"/>



<!-- From web.xml  (assuming that login.jsp is compiled as
JspServ.login) --!>

<servlet>
    <servlet-name>
        login
    </servlet-name>
    <servlet-class>
        JspServ.login
    </servlet-class>
 </servlet>

<servlet-mapping>
    <servlet-name>
       login
    </servlet-name>
    <url-pattern>
       /WEB-INF/jsp/common/login.jsp"/
    </url-pattern>
</servlet-mapping>


/* code snippet utilizing the above forward ('mapping' is an instance of
ActionMapping):

        return( mapping.findForward("new"));

*/



So, is this the correct way to go about it?  If so, will Struts still handle
forwards with appended URL parameters correctly, like this example?

<!-- From struts-config.xml --!>
<forward name="confirmed"  path="/login.do?confirmed=true" redirect="true"
/>


Does anyone have experience moving from non-precompiled JSPs to precompiled
ones, as we are trying to do here, and if so, are there any other "gotchas"
you know about or tidbits of knowledge you'd like to impart?  :)

Oh yeah, if I have all this completely wrong, do try and forgive me. :)


thanks so much,

Joe


P.S.  How slick would it be if the Struts framework had facilities for doing
this automatically?  In other words, have a tag within the struts-config.xml
file that specifies precompilation: the precompiler class to use, the java
compiler class to use, class path, etc., and then the Action servlet would
handle forward requests by redirecting to the compiled JSP servlet instead
of the actual .jsp page.  The Struts framework could maintain the mapping
between forward URLs specified in the struts-config.xml and the actual
compiled JSP servlet classes.  You could even have options like "retainJSP",
which would determine whether JSP files would be deleted after compilation,
or retained on the file system.  That would be super-cool!!






--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to