You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Baubak Gandomi <b....@castsoftware.com> on 2011/07/11 16:43:10 UTC
Asynchronous Display of Action Results
Hello,
I am not able to find any mention of this topic, or even if it is really
Struts 2-related.
I have a view which calls two actions using <s:action. The methods that
are called in the domain of the actions take different times to execute.
I would like my actions to be run parallel. I.e. Once they are finished
executing, that their results are show the moment they finish.
-------------------Struts.xml
<package name="ActionTests_Application" extends="struts-default">
<action name="start">
<result>/WEB-INF/pages/main.jsp</result>
</action>
<action name="action1" class="action_tld.Main_Class"
method="method1">
<result name="success">/WEB-INF/pages/page1.jsp</result>
</action>
<action name="action2" class="action_tld.Main_Class"
method="method2">
<result name="success">/WEB-INF/pages/page2.jsp</result>
</action>
</package>
-------------------action_tld.Main_Class
public class Main_Class {
private int delay = 0;
public String method1() {
setDelay(5000);
sleeper();
return ActionSupport.SUCCESS;
}
public String method2() {
setDelay(500);
sleeper();
return ActionSupport.SUCCESS;
}
-------------------main.jsp
<body>
waiting......
<table>
<tr>
<td>
<s:action name="action1" executeResult="true"></s:action>
</td>
<td><s:action name="action2"
executeResult="true"></s:action> </td>
</tr>
</table>
-------Page1 & 2
Just show a simple text
In the example above method2 takes longer to execute than method1. Today
when I execute start The result of action1 is displayed before action2.
However what I want is that action1 & action2 to be executed
simultaneously, and that the result of action2 is presented first.
This may not be a Struts2 question perse, but if anyone has any leads I
am much obliged.
Best regards,
Baubak
RE: Asynchronous Display of Action Results
Posted by Baubak Gandomi <b....@castsoftware.com>.
Thanks Wes,
<script type="text/javascript" >
$(document).ready(function() {
$("#remoteAction1").load('<s:url action="action1" />');
$("#remoteAction2").load('<s:url action="action2" />');
});
</script>
After figuring out how to work with jquery it all worked like a charm. Thanks for your help.
Best regards
Baubak
-----Original Message-----
From: Wes Wannemacher [mailto:wesw@wantii.com]
Sent: lundi 11 juillet 2011 16:52
To: Struts Users Mailing List
Subject: Re: Asynchronous Display of Action Results
You can achieve the outcome you desire by using AJAX instead of the
s:action tag. Here is an (untested) jquery example -
<div id="remoteAction1"></div>
<div id="remoteAction2"></div>
<script type="text/javascript>
$(document).ready(function() {
$("remoteAction1").load("<s:url action="action1" />");
$("remoteAction2").load("<s:url action="action2" />");
});
</script>
I'm too lazy at the moment to make sure that the javascript is
correct, so if someone notices any glaring errors, please chime in.
-Wes
On Mon, Jul 11, 2011 at 10:43 AM, Baubak Gandomi
<b....@castsoftware.com> wrote:
> Hello,
>
>
>
> I am not able to find any mention of this topic, or even if it is really
> Struts 2-related.
>
>
>
> I have a view which calls two actions using <s:action. The methods that
> are called in the domain of the actions take different times to execute.
> I would like my actions to be run parallel. I.e. Once they are finished
> executing, that their results are show the moment they finish.
>
>
>
> -------------------Struts.xml
>
> <package name="ActionTests_Application" extends="struts-default">
>
> <action name="start">
>
> <result>/WEB-INF/pages/main.jsp</result>
>
> </action>
>
>
>
> <action name="action1" class="action_tld.Main_Class"
> method="method1">
>
> <result name="success">/WEB-INF/pages/page1.jsp</result>
>
> </action>
>
>
>
> <action name="action2" class="action_tld.Main_Class"
> method="method2">
>
> <result name="success">/WEB-INF/pages/page2.jsp</result>
>
> </action>
>
>
>
> </package>
>
>
>
>
>
> -------------------action_tld.Main_Class
>
> public class Main_Class {
>
> private int delay = 0;
>
>
>
> public String method1() {
>
> setDelay(5000);
>
> sleeper();
>
> return ActionSupport.SUCCESS;
>
> }
>
>
>
> public String method2() {
>
> setDelay(500);
>
> sleeper();
>
> return ActionSupport.SUCCESS;
>
> }
>
>
>
>
>
> -------------------main.jsp
>
> <body>
>
> waiting......
>
> <table>
>
> <tr>
>
>
>
> <td>
>
> <s:action name="action1" executeResult="true"></s:action>
> </td>
>
>
>
> <td><s:action name="action2"
> executeResult="true"></s:action> </td>
>
> </tr>
>
> </table>
>
>
>
> -------Page1 & 2
>
> Just show a simple text
>
>
>
> In the example above method2 takes longer to execute than method1. Today
> when I execute start The result of action1 is displayed before action2.
> However what I want is that action1 & action2 to be executed
> simultaneously, and that the result of action2 is presented first.
>
>
>
> This may not be a Struts2 question perse, but if anyone has any leads I
> am much obliged.
>
>
>
> Best regards,
>
>
>
> Baubak
>
>
--
Wes Wannemacher
Head Engineer, WanTii, Inc.
Need Training? Struts, Spring, Maven, Tomcat...
Ask me for a quote!
---------------------------------------------------------------------
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: Asynchronous Display of Action Results
Posted by Dave Newton <da...@gmail.com>.
On Mon, Jul 11, 2011 at 4:51 PM, Baubak Gandomi wrote:
> Thanks I'll test your solution, and see how it works.
It's the only solution there is.
Dave
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
RE: Asynchronous Display of Action Results
Posted by Baubak Gandomi <b....@castsoftware.com>.
Thanks I'll test your solution, and see how it works.
-----Original Message-----
From: Wes Wannemacher [mailto:wesw@wantii.com]
Sent: lundi 11 juillet 2011 16:52
To: Struts Users Mailing List
Subject: Re: Asynchronous Display of Action Results
You can achieve the outcome you desire by using AJAX instead of the
s:action tag. Here is an (untested) jquery example -
<div id="remoteAction1"></div>
<div id="remoteAction2"></div>
<script type="text/javascript>
$(document).ready(function() {
$("remoteAction1").load("<s:url action="action1" />");
$("remoteAction2").load("<s:url action="action2" />");
});
</script>
I'm too lazy at the moment to make sure that the javascript is
correct, so if someone notices any glaring errors, please chime in.
-Wes
On Mon, Jul 11, 2011 at 10:43 AM, Baubak Gandomi
<b....@castsoftware.com> wrote:
> Hello,
>
>
>
> I am not able to find any mention of this topic, or even if it is really
> Struts 2-related.
>
>
>
> I have a view which calls two actions using <s:action. The methods that
> are called in the domain of the actions take different times to execute.
> I would like my actions to be run parallel. I.e. Once they are finished
> executing, that their results are show the moment they finish.
>
>
>
> -------------------Struts.xml
>
> <package name="ActionTests_Application" extends="struts-default">
>
> <action name="start">
>
> <result>/WEB-INF/pages/main.jsp</result>
>
> </action>
>
>
>
> <action name="action1" class="action_tld.Main_Class"
> method="method1">
>
> <result name="success">/WEB-INF/pages/page1.jsp</result>
>
> </action>
>
>
>
> <action name="action2" class="action_tld.Main_Class"
> method="method2">
>
> <result name="success">/WEB-INF/pages/page2.jsp</result>
>
> </action>
>
>
>
> </package>
>
>
>
>
>
> -------------------action_tld.Main_Class
>
> public class Main_Class {
>
> private int delay = 0;
>
>
>
> public String method1() {
>
> setDelay(5000);
>
> sleeper();
>
> return ActionSupport.SUCCESS;
>
> }
>
>
>
> public String method2() {
>
> setDelay(500);
>
> sleeper();
>
> return ActionSupport.SUCCESS;
>
> }
>
>
>
>
>
> -------------------main.jsp
>
> <body>
>
> waiting......
>
> <table>
>
> <tr>
>
>
>
> <td>
>
> <s:action name="action1" executeResult="true"></s:action>
> </td>
>
>
>
> <td><s:action name="action2"
> executeResult="true"></s:action> </td>
>
> </tr>
>
> </table>
>
>
>
> -------Page1 & 2
>
> Just show a simple text
>
>
>
> In the example above method2 takes longer to execute than method1. Today
> when I execute start The result of action1 is displayed before action2.
> However what I want is that action1 & action2 to be executed
> simultaneously, and that the result of action2 is presented first.
>
>
>
> This may not be a Struts2 question perse, but if anyone has any leads I
> am much obliged.
>
>
>
> Best regards,
>
>
>
> Baubak
>
>
--
Wes Wannemacher
Head Engineer, WanTii, Inc.
Need Training? Struts, Spring, Maven, Tomcat...
Ask me for a quote!
---------------------------------------------------------------------
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: Asynchronous Display of Action Results
Posted by Wes Wannemacher <we...@wantii.com>.
You can achieve the outcome you desire by using AJAX instead of the
s:action tag. Here is an (untested) jquery example -
<div id="remoteAction1"></div>
<div id="remoteAction2"></div>
<script type="text/javascript>
$(document).ready(function() {
$("remoteAction1").load("<s:url action="action1" />");
$("remoteAction2").load("<s:url action="action2" />");
});
</script>
I'm too lazy at the moment to make sure that the javascript is
correct, so if someone notices any glaring errors, please chime in.
-Wes
On Mon, Jul 11, 2011 at 10:43 AM, Baubak Gandomi
<b....@castsoftware.com> wrote:
> Hello,
>
>
>
> I am not able to find any mention of this topic, or even if it is really
> Struts 2-related.
>
>
>
> I have a view which calls two actions using <s:action. The methods that
> are called in the domain of the actions take different times to execute.
> I would like my actions to be run parallel. I.e. Once they are finished
> executing, that their results are show the moment they finish.
>
>
>
> -------------------Struts.xml
>
> <package name="ActionTests_Application" extends="struts-default">
>
> <action name="start">
>
> <result>/WEB-INF/pages/main.jsp</result>
>
> </action>
>
>
>
> <action name="action1" class="action_tld.Main_Class"
> method="method1">
>
> <result name="success">/WEB-INF/pages/page1.jsp</result>
>
> </action>
>
>
>
> <action name="action2" class="action_tld.Main_Class"
> method="method2">
>
> <result name="success">/WEB-INF/pages/page2.jsp</result>
>
> </action>
>
>
>
> </package>
>
>
>
>
>
> -------------------action_tld.Main_Class
>
> public class Main_Class {
>
> private int delay = 0;
>
>
>
> public String method1() {
>
> setDelay(5000);
>
> sleeper();
>
> return ActionSupport.SUCCESS;
>
> }
>
>
>
> public String method2() {
>
> setDelay(500);
>
> sleeper();
>
> return ActionSupport.SUCCESS;
>
> }
>
>
>
>
>
> -------------------main.jsp
>
> <body>
>
> waiting......
>
> <table>
>
> <tr>
>
>
>
> <td>
>
> <s:action name="action1" executeResult="true"></s:action>
> </td>
>
>
>
> <td><s:action name="action2"
> executeResult="true"></s:action> </td>
>
> </tr>
>
> </table>
>
>
>
> -------Page1 & 2
>
> Just show a simple text
>
>
>
> In the example above method2 takes longer to execute than method1. Today
> when I execute start The result of action1 is displayed before action2.
> However what I want is that action1 & action2 to be executed
> simultaneously, and that the result of action2 is presented first.
>
>
>
> This may not be a Struts2 question perse, but if anyone has any leads I
> am much obliged.
>
>
>
> Best regards,
>
>
>
> Baubak
>
>
--
Wes Wannemacher
Head Engineer, WanTii, Inc.
Need Training? Struts, Spring, Maven, Tomcat...
Ask me for a quote!
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org