You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by "Rhodes, Phillip C." <Ph...@alcoa.com> on 2003/11/12 23:12:49 UTC

webwork/Struts comparison

I really do not want a flame war here...  I am genuinely seeking the best tool for me.  I am looking for something that makes things easier for me.  

Are there any former webwork devotees here on the list that can tell me what you gained or lost? 

I am coming from struts and looking for a new framework.  I have a peer that is trying to get me to use webwork.  Here is his issue, in my words, and my comparison to struts.

In the tutorial, for the hangman game, for the formSubmit method:
cycle.activate("Guess");  

What my peer is having an issue with is that the Action (Home.java) in this case is hardwiring the flow to the next page (the Guess Page).  While I understand that one can write business logic in the formSubmit to control page flow (like in the makeGuess method in the Guess page), there is no indirection to your control flow.  

What if you wanted to reuse the action object (the page) but have the workflow be implemented in different ways for your reuse implementations?  Struts has the facility that one can map an action to multiple URL patterns, and have specific targets.  (see struts example at bottom).  Has anyone seen this as a limitation in Tapestry?  What can someone who knows webwork (inside and out) say in comparing the two frameworks?



    <action    path="/dosomething"
               type="com.example.struts.actions.DoSomethingAction"
               name="formBean"
              scope="session"
              input="secure.user.home">
      <forward name="success"              path="home"/>
      <forward name="error"              path="error"/>
    </action>

    <action    path="/dosomethingelse"
               type="com.example.struts.actions.DoSomethingAction"
               name="formBean"
              scope="session"
              input="secure.user.home">
      <forward name="success"              path="home2"/>
      <forward name="error"              path="error2"/>
    </action>







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


Re: webwork/Struts comparison

Posted by Harish Krishnaswamy <hk...@comcast.net>.
Thanks! This community is the best!

-Harish

Glen Stampoultzis wrote:

> Nice one...  I added it to the FAQ. 
> (http://tapestry.sourceforge.net/wiki/index.php/TapestryFAQ)
> 
> At 11:33 AM 13/11/2003, you wrote:
> 
>> Thinking about, better yet, Tapestry already has some support for 
>> this. The page meta property would be apt for this exactly this 
>> situation.
>>
>> Page1.page
>> <page-specification class="xyz.Action">
>> ...
>>         <property name="success" value="Home" />
>>         <property name="error" value="Error" />
>>
>> </page-specification>
>>
>> Page2.page
>> <page-specification class="xyz.Action">
>> ...
>>         <property name="success" value="Home2" />
>>         <property name="error" value="Error2" />
>>
>> </page-specification>
>>
>> xyz.Action.java
>> ...
>> public void submitListener(IRequestCycle cycle)
>> {
>>         if (success)
>>                 cycle.activate(getProperty("success"));
>>
>>         if (error)
>>                 cycle.activate(getProperty("error"));
>> }
>> ...
>>
>> -Harish
>>
>> Harish Krishnaswamy wrote:
>>
>>> I don't see it as a limitation, you could achieve this as follows.
>>> .java
>>> String pageName = this.getPageName();
>>> if (pageName.equals(PAGE1)
>>> {
>>>     cycle.activate("Page1");
>>> }
>>> else if (pageName.equals(PAGE2)
>>> {
>>>     cycle.activate("Page2");
>>> }
>>> You know you could reuse the same java class for any number of pages.
>>> Or better you could have a separate central *dispatcher* that can 
>>> take in the page name and dispatch to the appropriate place so not 
>>> every page will have these clumsy if/else. Of course the dispatching 
>>> can be based on any property of user's choice.
>>> -Harish
>>> Rhodes, Phillip C. wrote:
>>>
>>>> I really do not want a flame war here...  I am genuinely seeking the 
>>>> best tool for me.  I am looking for something that makes things 
>>>> easier for me. Are there any former webwork devotees here on the 
>>>> list that can tell me what you gained or lost?
>>>> I am coming from struts and looking for a new framework.  I have a 
>>>> peer that is trying to get me to use webwork.  Here is his issue, in 
>>>> my words, and my comparison to struts.
>>>>
>>>> In the tutorial, for the hangman game, for the formSubmit method:
>>>> cycle.activate("Guess"); What my peer is having an issue with is 
>>>> that the Action (Home.java) in this case is hardwiring the flow to 
>>>> the next page (the Guess Page).
>>>> While I understand that one can write business logic in the 
>>>> formSubmit to control page flow (like in the makeGuess method in the 
>>>> Guess page), there is no indirection to your control flow. What if 
>>>> you wanted to reuse the action object (the page) but have the 
>>>> workflow be implemented in different ways for your reuse 
>>>> implementations?  Struts has the facility that one can map an action 
>>>> to multiple URL patterns, and have specific targets.  (see struts 
>>>> example at bottom).  Has anyone seen this as a limitation in 
>>>> Tapestry?  What can someone who knows webwork (inside and out) say 
>>>> in comparing the two frameworks?
>>>>
>>>>
>>>>
>>>>     <action    path="/dosomething"
>>>>                type="com.example.struts.actions.DoSomethingAction"
>>>>                name="formBean"
>>>>               scope="session"
>>>>               input="secure.user.home">
>>>>       <forward name="success"              path="home"/>
>>>>       <forward name="error"              path="error"/>
>>>>     </action>
>>>>
>>>>     <action    path="/dosomethingelse"
>>>>                type="com.example.struts.actions.DoSomethingAction"
>>>>                name="formBean"
>>>>               scope="session"
>>>>               input="secure.user.home">
>>>>       <forward name="success"              path="home2"/>
>>>>       <forward name="error"              path="error2"/>
>>>>     </action>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
> 
> 
> Glen Stampoultzis
> gstamp@iinet.net.au
> http://members.iinet.net.au/~gstamp/glen/
> 


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


Re: webwork/Struts comparison

Posted by Erik Hatcher <er...@ehatchersolutions.com>.
Glen,

Thanks for adding that.  I had saved it as a gem in my e-mail folder as  
well.  This would be a great pattern to show those coming from a Struts  
background.  I also like the decoupling of the next page from the Java  
code.

	Erik


On Wednesday, November 12, 2003, at 10:46  PM, Glen Stampoultzis wrote:

> Nice one...  I added it to the FAQ.  
> (http://tapestry.sourceforge.net/wiki/index.php/TapestryFAQ)
>
> At 11:33 AM 13/11/2003, you wrote:
>> Thinking about, better yet, Tapestry already has some support for  
>> this. The page meta property would be apt for this exactly this  
>> situation.
>>
>> Page1.page
>> <page-specification class="xyz.Action">
>> ...
>>         <property name="success" value="Home" />
>>         <property name="error" value="Error" />
>>
>> </page-specification>
>>
>> Page2.page
>> <page-specification class="xyz.Action">
>> ...
>>         <property name="success" value="Home2" />
>>         <property name="error" value="Error2" />
>>
>> </page-specification>
>>
>> xyz.Action.java
>> ...
>> public void submitListener(IRequestCycle cycle)
>> {
>>         if (success)
>>                 cycle.activate(getProperty("success"));
>>
>>         if (error)
>>                 cycle.activate(getProperty("error"));
>> }
>> ...
>>
>> -Harish
>>
>> Harish Krishnaswamy wrote:
>>> I don't see it as a limitation, you could achieve this as follows.
>>> .java
>>> String pageName = this.getPageName();
>>> if (pageName.equals(PAGE1)
>>> {
>>>     cycle.activate("Page1");
>>> }
>>> else if (pageName.equals(PAGE2)
>>> {
>>>     cycle.activate("Page2");
>>> }
>>> You know you could reuse the same java class for any number of pages.
>>> Or better you could have a separate central *dispatcher* that can  
>>> take in the page name and dispatch to the appropriate place so not  
>>> every page will have these clumsy if/else. Of course the dispatching  
>>> can be based on any property of user's choice.
>>> -Harish
>>> Rhodes, Phillip C. wrote:
>>>
>>>> I really do not want a flame war here...  I am genuinely seeking  
>>>> the best tool for me.  I am looking for something that makes things  
>>>> easier for me. Are there any former webwork devotees here on the  
>>>> list that can tell me what you gained or lost?
>>>> I am coming from struts and looking for a new framework.  I have a  
>>>> peer that is trying to get me to use webwork.  Here is his issue,  
>>>> in my words, and my comparison to struts.
>>>>
>>>> In the tutorial, for the hangman game, for the formSubmit method:
>>>> cycle.activate("Guess"); What my peer is having an issue with is  
>>>> that the Action (Home.java) in this case is hardwiring the flow to  
>>>> the next page (the Guess Page).
>>>> While I understand that one can write business logic in the  
>>>> formSubmit to control page flow (like in the makeGuess method in  
>>>> the Guess page), there is no indirection to your control flow. What  
>>>> if you wanted to reuse the action object (the page) but have the  
>>>> workflow be implemented in different ways for your reuse  
>>>> implementations?  Struts has the facility that one can map an  
>>>> action to multiple URL patterns, and have specific targets.  (see  
>>>> struts example at bottom).  Has anyone seen this as a limitation in  
>>>> Tapestry?  What can someone who knows webwork (inside and out) say  
>>>> in comparing the two frameworks?
>>>>
>>>>
>>>>
>>>>     <action    path="/dosomething"
>>>>                type="com.example.struts.actions.DoSomethingAction"
>>>>                name="formBean"
>>>>               scope="session"
>>>>               input="secure.user.home">
>>>>       <forward name="success"              path="home"/>
>>>>       <forward name="error"              path="error"/>
>>>>     </action>
>>>>
>>>>     <action    path="/dosomethingelse"
>>>>                type="com.example.struts.actions.DoSomethingAction"
>>>>                name="formBean"
>>>>               scope="session"
>>>>               input="secure.user.home">
>>>>       <forward name="success"              path="home2"/>
>>>>       <forward name="error"              path="error2"/>
>>>>     </action>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> -------------------------------------------------------------------- 
>>>> -
>>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>> For additional commands, e-mail:  
>>>> tapestry-user-help@jakarta.apache.org
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>> For additional commands, e-mail:  
>>> tapestry-user-help@jakarta.apache.org
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>
>
> Glen Stampoultzis
> gstamp@iinet.net.au
> http://members.iinet.net.au/~gstamp/glen/


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


Re: webwork/Struts comparison

Posted by Glen Stampoultzis <gs...@iinet.net.au>.
Nice one...  I added it to the FAQ. 
(http://tapestry.sourceforge.net/wiki/index.php/TapestryFAQ)

At 11:33 AM 13/11/2003, you wrote:
>Thinking about, better yet, Tapestry already has some support for this. 
>The page meta property would be apt for this exactly this situation.
>
>Page1.page
><page-specification class="xyz.Action">
>...
>         <property name="success" value="Home" />
>         <property name="error" value="Error" />
>
></page-specification>
>
>Page2.page
><page-specification class="xyz.Action">
>...
>         <property name="success" value="Home2" />
>         <property name="error" value="Error2" />
>
></page-specification>
>
>xyz.Action.java
>...
>public void submitListener(IRequestCycle cycle)
>{
>         if (success)
>                 cycle.activate(getProperty("success"));
>
>         if (error)
>                 cycle.activate(getProperty("error"));
>}
>...
>
>-Harish
>
>Harish Krishnaswamy wrote:
>>I don't see it as a limitation, you could achieve this as follows.
>>.java
>>String pageName = this.getPageName();
>>if (pageName.equals(PAGE1)
>>{
>>     cycle.activate("Page1");
>>}
>>else if (pageName.equals(PAGE2)
>>{
>>     cycle.activate("Page2");
>>}
>>You know you could reuse the same java class for any number of pages.
>>Or better you could have a separate central *dispatcher* that can take in 
>>the page name and dispatch to the appropriate place so not every page 
>>will have these clumsy if/else. Of course the dispatching can be based on 
>>any property of user's choice.
>>-Harish
>>Rhodes, Phillip C. wrote:
>>
>>>I really do not want a flame war here...  I am genuinely seeking the 
>>>best tool for me.  I am looking for something that makes things easier 
>>>for me. Are there any former webwork devotees here on the list that can 
>>>tell me what you gained or lost?
>>>I am coming from struts and looking for a new framework.  I have a peer 
>>>that is trying to get me to use webwork.  Here is his issue, in my 
>>>words, and my comparison to struts.
>>>
>>>In the tutorial, for the hangman game, for the formSubmit method:
>>>cycle.activate("Guess"); What my peer is having an issue with is that 
>>>the Action (Home.java) in this case is hardwiring the flow to the next 
>>>page (the Guess Page).
>>>While I understand that one can write business logic in the formSubmit 
>>>to control page flow (like in the makeGuess method in the Guess page), 
>>>there is no indirection to your control flow. What if you wanted to 
>>>reuse the action object (the page) but have the workflow be implemented 
>>>in different ways for your reuse implementations?  Struts has the 
>>>facility that one can map an action to multiple URL patterns, and have 
>>>specific targets.  (see struts example at bottom).  Has anyone seen this 
>>>as a limitation in Tapestry?  What can someone who knows webwork (inside 
>>>and out) say in comparing the two frameworks?
>>>
>>>
>>>
>>>     <action    path="/dosomething"
>>>                type="com.example.struts.actions.DoSomethingAction"
>>>                name="formBean"
>>>               scope="session"
>>>               input="secure.user.home">
>>>       <forward name="success"              path="home"/>
>>>       <forward name="error"              path="error"/>
>>>     </action>
>>>
>>>     <action    path="/dosomethingelse"
>>>                type="com.example.struts.actions.DoSomethingAction"
>>>                name="formBean"
>>>               scope="session"
>>>               input="secure.user.home">
>>>       <forward name="success"              path="home2"/>
>>>       <forward name="error"              path="error2"/>
>>>     </action>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>


Glen Stampoultzis
gstamp@iinet.net.au
http://members.iinet.net.au/~gstamp/glen/

Re: webwork/Struts comparison

Posted by Harish Krishnaswamy <hk...@comcast.net>.
Thinking about, better yet, Tapestry already has some support for this. The page meta property would 
be apt for this exactly this situation.

Page1.page
<page-specification class="xyz.Action">
...
	<property name="success" value="Home" />
	<property name="error" value="Error" />

</page-specification>

Page2.page
<page-specification class="xyz.Action">
...
	<property name="success" value="Home2" />
	<property name="error" value="Error2" />

</page-specification>

xyz.Action.java
...
public void submitListener(IRequestCycle cycle)
{
	if (success)
		cycle.activate(getProperty("success"));

	if (error)
		cycle.activate(getProperty("error"));
}
...

-Harish

Harish Krishnaswamy wrote:
> I don't see it as a limitation, you could achieve this as follows.
> 
> .java
> 
> String pageName = this.getPageName();
> 
> if (pageName.equals(PAGE1)
> {
>     cycle.activate("Page1");
> }
> else if (pageName.equals(PAGE2)
> {
>     cycle.activate("Page2");
> }
> 
> You know you could reuse the same java class for any number of pages.
> 
> Or better you could have a separate central *dispatcher* that can take 
> in the page name and dispatch to the appropriate place so not every page 
> will have these clumsy if/else. Of course the dispatching can be based 
> on any property of user's choice.
> 
> -Harish
> 
> Rhodes, Phillip C. wrote:
> 
>> I really do not want a flame war here...  I am genuinely seeking the 
>> best tool for me.  I am looking for something that makes things easier 
>> for me. 
>> Are there any former webwork devotees here on the list that can tell 
>> me what you gained or lost?
>> I am coming from struts and looking for a new framework.  I have a 
>> peer that is trying to get me to use webwork.  Here is his issue, in 
>> my words, and my comparison to struts.
>>
>> In the tutorial, for the hangman game, for the formSubmit method:
>> cycle.activate("Guess"); 
>> What my peer is having an issue with is that the Action (Home.java) in 
>> this case is hardwiring the flow to the next page (the Guess Page).  
>> While I understand that one can write business logic in the formSubmit 
>> to control page flow (like in the makeGuess method in the Guess page), 
>> there is no indirection to your control flow. 
>> What if you wanted to reuse the action object (the page) but have the 
>> workflow be implemented in different ways for your reuse 
>> implementations?  Struts has the facility that one can map an action 
>> to multiple URL patterns, and have specific targets.  (see struts 
>> example at bottom).  Has anyone seen this as a limitation in 
>> Tapestry?  What can someone who knows webwork (inside and out) say in 
>> comparing the two frameworks?
>>
>>
>>
>>     <action    path="/dosomething"
>>                type="com.example.struts.actions.DoSomethingAction"
>>                name="formBean"
>>               scope="session"
>>               input="secure.user.home">
>>       <forward name="success"              path="home"/>
>>       <forward name="error"              path="error"/>
>>     </action>
>>
>>     <action    path="/dosomethingelse"
>>                type="com.example.struts.actions.DoSomethingAction"
>>                name="formBean"
>>               scope="session"
>>               input="secure.user.home">
>>       <forward name="success"              path="home2"/>
>>       <forward name="error"              path="error2"/>
>>     </action>
>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
> 
> 


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


Re: webwork/Struts comparison

Posted by "Kevin C. Dorff" <kd...@dorffweb.com>.
The real key is that in any architecture that are an almost limitless 
number of solutions to any problem.

To do exactly what you are suggesting, I believe you could pass the 
"next" page as a required parameter for the Hello page component and 
then instead of going to the hardwired "Guess" page, it will go to 
whatever page is in the parameter. There are examples of page parameters 
in the Border example (not for chaning which page to go to, but you 
should be able to get the idea).

Kevin

Harish Krishnaswamy wrote:

> I don't see it as a limitation, you could achieve this as follows.
>
> .java
>
> String pageName = this.getPageName();
>
> if (pageName.equals(PAGE1)
> {
>     cycle.activate("Page1");
> }
> else if (pageName.equals(PAGE2)
> {
>     cycle.activate("Page2");
> }
>
> You know you could reuse the same java class for any number of pages.
>
> Or better you could have a separate central *dispatcher* that can take 
> in the page name and dispatch to the appropriate place so not every 
> page will have these clumsy if/else. Of course the dispatching can be 
> based on any property of user's choice.
>
> -Harish
>
> Rhodes, Phillip C. wrote:
>
>> I really do not want a flame war here...  I am genuinely seeking the 
>> best tool for me.  I am looking for something that makes things 
>> easier for me. 
>> Are there any former webwork devotees here on the list that can tell 
>> me what you gained or lost?
>> I am coming from struts and looking for a new framework.  I have a 
>> peer that is trying to get me to use webwork.  Here is his issue, in 
>> my words, and my comparison to struts.
>>
>> In the tutorial, for the hangman game, for the formSubmit method:
>> cycle.activate("Guess"); 
>> What my peer is having an issue with is that the Action (Home.java) 
>> in this case is hardwiring the flow to the next page (the Guess 
>> Page).  While I understand that one can write business logic in the 
>> formSubmit to control page flow (like in the makeGuess method in the 
>> Guess page), there is no indirection to your control flow. 
>> What if you wanted to reuse the action object (the page) but have the 
>> workflow be implemented in different ways for your reuse 
>> implementations?  Struts has the facility that one can map an action 
>> to multiple URL patterns, and have specific targets.  (see struts 
>> example at bottom).  Has anyone seen this as a limitation in 
>> Tapestry?  What can someone who knows webwork (inside and out) say in 
>> comparing the two frameworks?
>>
>>
>>
>>     <action    path="/dosomething"
>>                type="com.example.struts.actions.DoSomethingAction"
>>                name="formBean"
>>               scope="session"
>>               input="secure.user.home">
>>       <forward name="success"              path="home"/>
>>       <forward name="error"              path="error"/>
>>     </action>
>>
>>     <action    path="/dosomethingelse"
>>                type="com.example.struts.actions.DoSomethingAction"
>>                name="formBean"
>>               scope="session"
>>               input="secure.user.home">
>>       <forward name="success"              path="home2"/>
>>       <forward name="error"              path="error2"/>
>>     </action>
>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
>> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
>
>
>




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


Re: webwork/Struts comparison

Posted by Harish Krishnaswamy <hk...@comcast.net>.
I don't see it as a limitation, you could achieve this as follows.

.java

String pageName = this.getPageName();

if (pageName.equals(PAGE1)
{
	cycle.activate("Page1");
}
else if (pageName.equals(PAGE2)
{
	cycle.activate("Page2");
}

You know you could reuse the same java class for any number of pages.

Or better you could have a separate central *dispatcher* that can take in the page name and dispatch 
to the appropriate place so not every page will have these clumsy if/else. Of course the dispatching 
can be based on any property of user's choice.

-Harish

Rhodes, Phillip C. wrote:

> I really do not want a flame war here...  I am genuinely seeking the best tool for me.  I am looking for something that makes things easier for me.  
> 
> Are there any former webwork devotees here on the list that can tell me what you gained or lost? 
> 
> I am coming from struts and looking for a new framework.  I have a peer that is trying to get me to use webwork.  Here is his issue, in my words, and my comparison to struts.
> 
> In the tutorial, for the hangman game, for the formSubmit method:
> cycle.activate("Guess");  
> 
> What my peer is having an issue with is that the Action (Home.java) in this case is hardwiring the flow to the next page (the Guess Page).  While I understand that one can write business logic in the formSubmit to control page flow (like in the makeGuess method in the Guess page), there is no indirection to your control flow.  
> 
> What if you wanted to reuse the action object (the page) but have the workflow be implemented in different ways for your reuse implementations?  Struts has the facility that one can map an action to multiple URL patterns, and have specific targets.  (see struts example at bottom).  Has anyone seen this as a limitation in Tapestry?  What can someone who knows webwork (inside and out) say in comparing the two frameworks?
> 
> 
> 
>     <action    path="/dosomething"
>                type="com.example.struts.actions.DoSomethingAction"
>                name="formBean"
>               scope="session"
>               input="secure.user.home">
>       <forward name="success"              path="home"/>
>       <forward name="error"              path="error"/>
>     </action>
> 
>     <action    path="/dosomethingelse"
>                type="com.example.struts.actions.DoSomethingAction"
>                name="formBean"
>               scope="session"
>               input="secure.user.home">
>       <forward name="success"              path="home2"/>
>       <forward name="error"              path="error2"/>
>     </action>
> 
> 
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tapestry-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: tapestry-user-help@jakarta.apache.org
> 
> 


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