struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rene Gielen <rgie...@apache.org>
Subject Re: Forward a action from one action programmatically in STruts 2.0
Date Tue, 20 Mar 2007 11:25:29 GMT
Maybe this is the option you are searching for:

struts.xml:
-----------
<action name="action1" class="acme.Action1">
  <result>${targetUrl}</result>
</action>

in your acme.Action1 class:
---------------------------
String targetUrl;

public String getTargetUrl() {
	return this.targetUrl;
}

public String execute() {
	if (...) {
		this,targetUrl = "1.jsp";
	} else ...
	}
}

Regards,
- Rene

arunkumar S schrieb:
> Hi,
> 
> 
> 
> Thanks for the inputs. my req. will not satisfy your suggestion.
> 
> 
> 
> My req. is I have to load different Jsps depending on the user
> profile. eg <http://profile.eg/>. for user with profile = "abc",
> 
> i will have JSps like 1_abc.jsp,2_abc.jsp,3_abc.jsp
> 
> for user with profile = def , i will have jsps like 1_def.jsp,2_def.jsp
> etc..
> 
> 
> 
> 
> 
> 
> 
> one way of solving this is to mention all the Jsp for users with
> different profile in the results and then forward
> 
> it in the action itself.
> 
> 
> 
> like
> 
> 
> 
> 
> 
> <action name=action1 class = action1>
> 
>  <result>1_abc.jsp</result>
> 
>  <result>1_def.jsp</result>
> 
> </action>
> 
> 
> 
> 
> 
> <action name=action2 class = action2>
> 
>  <result>2_abc.jsp</result>
> 
>  <result>2_def.jsp</result>
> 
> </action>
> 
> 
> 
> return corresponding result in each action based on the users profile.
> 
> 
> 
> but the pblm here for each action the application developer has to
> define results for each user.
> 
> I am thinking of moving this to framework.
> 
> 
> 
> Below is the new approach.
> 
> 
> 
> 
> 
> 
> 
> <action name=action1 class = action1>
> 
>  <result>1.jsp</result>
> 
> </action>
> 
> 
> 
> 
> 
> <action name=action2 class = action2>
> 
>  <result>2.jsp</result>
> 
> </action>
> 
> 
> 
> <action name= "*">
> 
> <result>/{1}.jsp</result>
> 
> </action>
> 
> 
> 
> 
> 
> Now , in an action1.class & action2.class depending on the user
> profile i construt 1_abc.action or
> 
> 1_def.action and 2_abc.action or 2_def.action respectively . and if
> i can forward with 1_abc.action the below
> 
> definition present in the STruts.xml will take care of forwarding it
> to 1_abc.jsp /1_def.jsp  depending on the user automatically.
> 
> 
> 
> <action name= "*">
> 
> <result>/{1}.jsp</result>
> 
> </action>
> 
> 
> 
> FOr this i need to programmatically forward to an action so that i can
> leverage the above mentioned facility.
> 
> 
> 
> I hope i have made things clear.Let me know if have any suggestions.
> 
> 
> 
> 
> 
> 
> 
> 
> 
> Regards,
> 
> Arun.
> 
> 
> 
> 
> 
> The way I solve this is by returning the value you want and setting up the
> action chain on struts.xml file:
> 
> Example:
> 
>   class MyAction 1 .. {
> 
>   public String execute(){
>         if(foo)
>             return "foo";
>         else
>             return "bar";
>  }
> 
> Then on the Strutus XML file:
> 
>  <action name= "MyAction"  class. = ....>
>      <result name="foo" type="chain"> FooAction</result>
>      <result name="bar" type="chain"> BarAction</result>
> ...
> </action>
> 
> PS. Make sure you use type="chain"!
> Hope this helps.
> 
> Harring
> On 3/15/07, arunkumar S <[EMAIL PROTECTED]> wrote:
> 
> Hi,
> 
> I have a requirement where in the action has to be forwarded based on
> certain runtime conditions.The destination will be decided only on the
> runtime.
> -------------------------------
> if(Input = "Case1" )
> forward action1
> else
> forward action2.
> -------------------------------
> 
> Basically i want to acheive a simple forward( requestdispatcher.forward()
> ) in
> ActionClass in Struts 2.0.
> 
> How can we acheive this in Struts 2.0. I dont have any API to acheive
> this.
> 
> Any inputs pls?
> 
> 
> Regards,
> Arun
> 

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


Mime
View raw message