Not anything new, but we can also increase the buffer size

<%@ page buffer="10kb" autoFlush="false" %><%@ taglib
uri="/WEB-INF/struts-bean.tld"  prefix="bean"  %><bean:define
id="emailStuff" toScope="request">

      <html>
         <body>
             <h1><bean:write name="emailHeading"/></h1>
             <p><bean:write name="emailBody"/></p>
         </body>
      </html>

   </bean:define>


Also, if you define your action to extend IncludeAction, then by
having the path to template in the "parameter"
you could have the call to RequestDispatcher delegated to
IncludeAction like so :

public ActionForward execute(ActionMapping mapping,
                             ActionForm form,
                             HttpServletRequest request,
                             HttpServletResponse response) throws Exception {
        
        // Set up attributes used by the template
        request.setAttribute("emailHeading", "Test Heading");
        request.setAttribute("emailBody", "This is some body text");

        super.execute(mapping, form, request, response); // generate email
        
        // Get the generated email from the request attribute
        String emailStuff = (String)request.getAttribute("emailStuff");
        
        // ...send the email
        
        // forward to appropriate page
        return mapping.findForward("success");
        
}





On Tue, 25 Jan 2005 19:00:35 -0000, Niall Pemberton
<[EMAIL PROTECTED]> wrote:
> Good points Kris,
> 
> hope you don't mind, but I added your comments to the page I set up
> (although I slightly modified the whitespace *hack*).
> 
> http://www.niallp.pwp.blueyonder.co.uk/emailTemplate.html
> 
> Niall
> 
> ----- Original Message -----
> From: "Kris Schneider" <[EMAIL PROTECTED]>
> To: "Struts Users Mailing List" <user@struts.apache.org>
> 
> Sent: Tuesday, January 25, 2005 4:32 PM
> Subject: Re: OT - Evaulating JSP as internal template?
> 
> > For the paranoid, you probably want to be sure that the email template
> > ("EmailTestTemplate.jsp") doesn't actually produce any output. Because
> you're
> > doing an include followed by a forward, there's a *possibility* that the
> > forward will throw an IllegalStateException if the include causes the
> response
> > to be committed. You can use one of the various JSP whitespace "hacks" to
> > help:
> >
> > <%@ taglib uri="http://struts.apache.org/tags-bean"; prefix="bean" %><%--
> >
> > --%><bean:define id="emailStuff" toScope="request">
> >   ...
> > </bean:define>
> >
> > Obviously, the example is unlikely to cause a problem, but a more involved
> page
> > might.
> >
> > Another approach might be to pass an HttpServletResponseWrapper to the
> include
> > method whose output stream (or writer) just buffers the entire response
> for
> > later retrieval.
> >
> > Quoting Niall Pemberton <[EMAIL PROTECTED]>:
> >
> > > You can do this easily using the <bean:define> tag and the
> > > RequestDispatcher. I've put a page up on my web site showing how:
> > >
> > > http://www.niallp.pwp.blueyonder.co.uk/emailTemplate.html
> > >
> > > I believe the RequestDispatcher is the "magic" JSP processor you're
> looking
> > > for.
> > >
> > > Niall
> > >
> > > ----- Original Message -----
> > > From: "William Stranathan" <[EMAIL PROTECTED]>
> > > To: "Struts Users Mailing List" <user@struts.apache.org>
> > > Sent: Tuesday, January 25, 2005 11:00 AM
> > > Subject: OT - Evaulating JSP as internal template?
> > >
> > >
> > > > The subject is prolly a poor way to say what I'm trying to say....
> > > >
> > > > Does anybody know of a simple way to use JSP as an INTERNAL templating
> > > > engine.  For example, if I have a struts application where I'm
> > > > generating an email to send, I currently have to use Velocity on the
> > > > server side to put the values into the template, then send that.
> > > >
> > > > Is there a simple way to do the same with JSP?  Would I be best served
> > > > by on the server side, constructing an HTTP request to a JSP that
> simply
> > > > pops in the request attributes into the correc place?
> > > >
> > > > High-level of what I want to do:
> > > >
> > > > ActionForward execute(mapping, form, request, response) {
> > > >    MyForm myform = (MyForm)form;
> > > >
> > > >    Hashtable vals = new Hashtable();
> > > >    vals.put("user",form.getUser());
> > > >    vals.put("car",form.getCar());
> > > >
> > > >    JSPProcessor proc = new JSPProcessor();
> > > >    proc.getRequestScope().put("values",vals);
> > > >    StringBuffer buff = proc.evaluate("WEB-INF/templates/email.jsp");
> > > >
> > > >    MailUtils.mail("[EMAIL PROTECTED]",buff);
> > > > }
> > > >
> > > > Where JSPProcessor is the kind of magic I'm looking for.  I don't
> really
> > > > see anything built into the API spec, so I SUSPECT if there were
> > > > anything available in Tomcat, for instance, it would be implementation
> > > > specific.
> > > >
> > > > Not a HUGE deal, but it's kinda' a pain to have to train new folks on
> > > > how to put together the JSP's AND how to put together the velocity
> > > > templates.
> > > >
> > > > Thanks,
> > > > Will
> >
> > --
> > Kris Schneider <mailto:[EMAIL PROTECTED]>
> > D.O.Tech       <http://www.dotech.com/>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
> >
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
>

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

Reply via email to