You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "Felipe Desiderati e Souza (JIRA)" <ji...@apache.org> on 2006/07/06 23:48:16 UTC

[jira] Updated: (STR-2905) Allow nested tags inside an action ()

     [ http://issues.apache.org/struts/browse/STR-2905?page=all ]

Felipe Desiderati e Souza updated STR-2905:
-------------------------------------------

    Summary: Allow nested tags <include ..> inside an action (<action ...></action>)  (was: Allow nested tags <include ..> insinde an action <action ...></action>)

> Allow nested tags <include ..> inside an action (<action ...></action>)
> -----------------------------------------------------------------------
>
>          Key: STR-2905
>          URL: http://issues.apache.org/struts/browse/STR-2905
>      Project: Struts 1
>         Type: Improvement

>   Components: Core
>     Versions: 1.2.9
>  Environment: System: Microsoft Windows XP (Version 2002 - Service Pack 2)
> App Server: Tomcat 5.5.9
> Struts Version; 1.2.9
>     Reporter: Felipe Desiderati e Souza
>     Priority: Minor

>
> I know that is possible to do an include instead of a forward, but it's only possible to use in declarations like this:
> ...
> <action path="/something" include="/path/to/my/file.jsp" />
> ...
> So if I need to do an include using an action that has more than one forward and/or include, I need to do something like this:
> ...
> <action type="myClass" ... />
>    <forward name="f1" path="/f1Include.do" /> <!-- This need to be an include -->
>    <forward name="f2" path="/f2.jsp" />
>    <forward name="f3" path="/f3.jsp" />
> </action>
> <action path="/f1Include" include="/f1.jsp" />
> ...
> So Why do we have to do this? First, because the <forward ../> tag doesn't have any attribute that tells that this forward should be an include. And second, because doesn't exist any nested tag like <include ../> to replace the <forward ../> tag.
> I don't know if exists any problem in use this approach, i.e., add the <include ../> tag to struts DTD, and in the Request Processor add a veirifcation if it's a forward or an include. Like is done with single action, showed in the first example above. So, if we use the first example, the Request Processor verifies if it needs to do an forward, if not then it verifies if it needs to do an include. As you can see in follow piece of code:
> ...
>  public void process(HttpServletRequest request, HttpServletResponse response) {
>    ...
>    if (!processForward(request, response, mapping)) {
>       return;
>    }
>         
>    if (!processInclude(request, response, mapping)) {
>       return;
>    }
>    ...
> }
> ...
> But if we have to do anything like what was showed in the second example, we can't. Unless we use that approach.
> I realize with this solution of adding the tag <include>, we still have the backward compatibility and an improvement to setup an include on actions with multiples forwards/includes, without use any more action.
> Felipe

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/struts/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira