You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by GF <ga...@gmail.com> on 2008/01/04 17:36:20 UTC

[S2] Adding a new interceptor to every package.

Hi everyone.
I have many packages that extends extends="tiles-default".
I would like to add an interceptor to all of them.

Now I'm doing this:

	<package name="myPackage" extends="tiles-default" namespace="/myspace">

	  	<interceptors>
	  		<interceptor name="myInter" class="myInterceptor" />
	  		<interceptor-stack name="myStack">
	  			<interceptor-ref name="myInter" />
	  			<interceptor-ref name="defaultStack" />
	  		</interceptor-stack>
	  	</interceptors>
	  	
	  	<default-interceptor-ref name="myStack"/>
	.......
	</package>

But I should do this to Every one.. and it is not nice..
Can you suggest me a quicker (and more elegant) way?

Thank you!

GF

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


Re: [S2] Adding a new interceptor to every package.

Posted by GF <ga...@gmail.com>.
Really I have still some issues.

my struts.xml is built in this way:

<struts>
<include file="struts1.xml" />
<include file="struts2.xml" />
<include file="struts3.xml" />

In every included xml i define a different package for a different
section of the, i.e. in struts1.xml I define the package name="one"

If I put the package name="default" inside struts1.xml I can extend
package "one" from "default"...
But if I put package name ="default" at the begininning of struts.xml
when I launch the application it says that package "one" cannot find
the referenced "default" package..


<struts>
<package name="default" extends="tiles-default" abstract="true">
...
</package>
<include file="struts1.xml" />
<include file="struts2.xml" />
<include file="struts3.xml" />

In few words it seems that inside the included XML i cannot reference
packages defined in the main XML.. is this true?

Thank you

> Sure: define the stack once, then reference it from each of your packages:
>
>    <package name="default" extends="tiles-default" abstract="true">
>      <interceptors>
>        <interceptor name="myInter" class="myInterceptor" />
>        <interceptor-stack name="myStack">
>          <interceptor-ref name="myInter" />
>          <interceptor-ref name="defaultStack" />
>        </interceptor-stack>
>      </interceptors>
>
>      <default-interceptor-ref name="myStack"/>
>
>    </package>
>
>    <package name="myPackage" extends="default" namespace="/myspace">
>      ...actions...
>    </package>
>

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


Re: [S2] Adding a new interceptor to every package.

Posted by GF <ga...@gmail.com>.
thank you very much!

>
> Sure: define the stack once, then reference it from each of your packages:
>
>    <package name="default" extends="tiles-default" abstract="true">
>      <interceptors>
>        <interceptor name="myInter" class="myInterceptor" />
>        <interceptor-stack name="myStack">
>          <interceptor-ref name="myInter" />
>          <interceptor-ref name="defaultStack" />
>        </interceptor-stack>
>      </interceptors>
>
>      <default-interceptor-ref name="myStack"/>
>
>    </package>
>
>    <package name="myPackage" extends="default" namespace="/myspace">
>      ...actions...
>    </package>
>

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


Re: [S2] Adding a new interceptor to every package.

Posted by Laurie Harper <la...@holoweb.net>.
GF wrote:
> Hi everyone.
> I have many packages that extends extends="tiles-default".
> I would like to add an interceptor to all of them.
> 
> Now I'm doing this:
> 
> 	<package name="myPackage" extends="tiles-default" namespace="/myspace">
> 
> 	  	<interceptors>
> 	  		<interceptor name="myInter" class="myInterceptor" />
> 	  		<interceptor-stack name="myStack">
> 	  			<interceptor-ref name="myInter" />
> 	  			<interceptor-ref name="defaultStack" />
> 	  		</interceptor-stack>
> 	  	</interceptors>
> 	  	
> 	  	<default-interceptor-ref name="myStack"/>
> 	.......
> 	</package>
> 
> But I should do this to Every one.. and it is not nice..
> Can you suggest me a quicker (and more elegant) way?

Sure: define the stack once, then reference it from each of your packages:

   <package name="default" extends="tiles-default" abstract="true">
     <interceptors>
       <interceptor name="myInter" class="myInterceptor" />
       <interceptor-stack name="myStack">
         <interceptor-ref name="myInter" />
         <interceptor-ref name="defaultStack" />
       </interceptor-stack>
     </interceptors>

     <default-interceptor-ref name="myStack"/>

   </package>

   <package name="myPackage" extends="default" namespace="/myspace">
     ...actions...
   </package>

See the Interceptors guide [1], especially the Stacking Interceptors 
section and the first item in the FAQs [2] at the end.

L.

[1] http://struts.apache.org/2.0.11/docs/interceptors.html
[2] 
http://struts.apache.org/2.0.11/docs/how-do-we-configure-an-interceptor-to-be-used-with-every-action.html


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


Re: [S2] Adding a new interceptor to every package.

Posted by st...@gmail.com.
Hey GF --

Your package declaration can extend multiple packages by using the comma!

<package name="myPackage" extends="masterPack,tiles-default"
namespace="/myspace">

Scott

On Jan 4, 2008 10:36 AM, GF <ga...@gmail.com> wrote:

> Hi everyone.
> I have many packages that extends extends="tiles-default".
> I would like to add an interceptor to all of them.
>
> Now I'm doing this:
>
>        <package name="myPackage" extends="tiles-default"
> namespace="/myspace">
>
>                <interceptors>
>                        <interceptor name="myInter" class="myInterceptor"
> />
>                        <interceptor-stack name="myStack">
>                                <interceptor-ref name="myInter" />
>                                <interceptor-ref name="defaultStack" />
>                        </interceptor-stack>
>                </interceptors>
>
>                <default-interceptor-ref name="myStack"/>
>        .......
>        </package>
>
> But I should do this to Every one.. and it is not nice..
> Can you suggest me a quicker (and more elegant) way?
>
> Thank you!
>
> GF
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>


-- 
Scott
stanlick@gmail.com