You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by David Evans <ds...@berndtgroup.net> on 2005/12/13 16:54:13 UTC

Re: jsp:includes or c:imports of action AND new tag for in struts config

I solved this problem, by using the source of the struts IncludeAction.
I hijacked that code and did my List generation before the the
RequestDispatcher formward call, so it looks like:

Action snippet: ******************
List menuItems = getMenuItemsList();
req.setAttribute("menuitems", menuItems);

RequestDispatcher rd =
servlet.getServletContext().getRequestDispatcher("/WEB-INF/jsp/frontend/footer_include.jsp");

// Forward control to the specified resource
rd.include(req, res);

// Tell the controller servlet that the response has been created
return (null);
**********************************

So I'm wondering, has anyone ever heard of a proposal to allow for an
<include> tag inside an <action> tag in the struts config, to complement
the <forward> tag? so instead of the above i could just config like
this:
<action
  path="/sidenav"
  type="com.whatever.actions.SideNavAction">
  <include name="showForm" path="/WEB-INF/jsp/sideNav_form.jsp" />
</action>

It would seem like useful functionality and a more clear and struts like
solution to the above problem.

dave


On Mon, 2005-12-12 at 18:12 -0800, David Evans wrote:
> Hello all,
> 
> I have a requirement for a dynamically created menu on all pages of a
> web site i am creating. So i created an action that creates a List of
> MenuItems, and then forwards to a jsp that uses jstl to forEach through
> the list and generate the appropriate html. the jsp page only has the
> snippet of html for the menu div of the page. I am including this action
> in "static" html pages via the use of apaches SSI module like this:
> <!--#include virtual="/apps/footer" -->
> 
> and thought i was going to use jsp:include to include it in all of the
> jsp pages to which my applications actions are forwarding, like this:
> <jsp:include page="/apps/footer" />
> 
> However when i attempt to do that i get a:
> 
> java.lang.IllegalStateException: Cannot forward after response has been
> committed
> 
> This does work:
> <c:import url="http://www.domainname.com/apps/footer" />
> but i'd prefer not to have to use that, because then i'll have to change
> it when things move from dev to production, so far my jsp's have no site
> specific information, so i can just copy them.
> 
> So can someone tell me how/if i can include the results of an action in
> a jsp that is being forwarded to from another action?
> 
> Thanks
> 
> Dave
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: jsp:includes or c:imports of action AND new tag for in struts config

Posted by Laurie Harper <la...@holoweb.net>.
You might want to take a look at Tiles. It lets you solve exactly this 
kind of page composition problem. It can do a lot more than just include 
trailing content, too.

L.

David Evans wrote:
> I solved this problem, by using the source of the struts IncludeAction.
> I hijacked that code and did my List generation before the the
> RequestDispatcher formward call, so it looks like:
> 
> Action snippet: ******************
> List menuItems = getMenuItemsList();
> req.setAttribute("menuitems", menuItems);
> 
> RequestDispatcher rd =
> servlet.getServletContext().getRequestDispatcher("/WEB-INF/jsp/frontend/footer_include.jsp");
> 
> // Forward control to the specified resource
> rd.include(req, res);
> 
> // Tell the controller servlet that the response has been created
> return (null);
> **********************************
> 
> So I'm wondering, has anyone ever heard of a proposal to allow for an
> <include> tag inside an <action> tag in the struts config, to complement
> the <forward> tag? so instead of the above i could just config like
> this:
> <action
>   path="/sidenav"
>   type="com.whatever.actions.SideNavAction">
>   <include name="showForm" path="/WEB-INF/jsp/sideNav_form.jsp" />
> </action>
> 
> It would seem like useful functionality and a more clear and struts like
> solution to the above problem.
> 
> dave
> 
> 
> On Mon, 2005-12-12 at 18:12 -0800, David Evans wrote:
>> Hello all,
>>
>> I have a requirement for a dynamically created menu on all pages of a
>> web site i am creating. So i created an action that creates a List of
>> MenuItems, and then forwards to a jsp that uses jstl to forEach through
>> the list and generate the appropriate html. the jsp page only has the
>> snippet of html for the menu div of the page. I am including this action
>> in "static" html pages via the use of apaches SSI module like this:
>> <!--#include virtual="/apps/footer" -->
>>
>> and thought i was going to use jsp:include to include it in all of the
>> jsp pages to which my applications actions are forwarding, like this:
>> <jsp:include page="/apps/footer" />
>>
>> However when i attempt to do that i get a:
>>
>> java.lang.IllegalStateException: Cannot forward after response has been
>> committed
>>
>> This does work:
>> <c:import url="http://www.domainname.com/apps/footer" />
>> but i'd prefer not to have to use that, because then i'll have to change
>> it when things move from dev to production, so far my jsp's have no site
>> specific information, so i can just copy them.
>>
>> So can someone tell me how/if i can include the results of an action in
>> a jsp that is being forwarded to from another action?
>>
>> Thanks
>>
>> Dave
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org