Use a LookupDispatch Action, very convenient no java script no logic
branching. (For more info look at Ted Husteds struts tips)


Have your buttons setup like this...

<html:submit>
<bean:message key="button.edit"/>
</html:submit>
<br/>
<html:submit>
<bean:message key="button.relate"/>
</html:submit>

Action looks like this ...you have to map all your buttons to methods in
this class and struts takes care of running your method based on the button
submitted.


public class ArticleAction extends LookupDispatchAction {

        protected Map getKeyMethodMap() {

        Map map = new HashMap();
        map.put("button.edit", "view");
        map.put("button.relate", "relate");
        map.put("button.new.article", "newArticle");
        map.put("button.view", "view");
        map.put("button.remove.related", "remove");
        return map;
}

public ActionForward view(ActionMapping mapping,
    ActionForm form,
    HttpServletRequest request,
    HttpServletResponse response)
  throws IOException, ServletException {

                return getArticle(mapping, form, request,articleId);
}

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]]
Sent: Thursday, August 29, 2002 1:08 PM
To: Struts Users Mailing List
Subject: Re: Struts and Many Buttons on Single page



Have been through this one;  originally used option 2 (javascript to on
button click to change action), but as we use httpunit to acceptance test,
which does not support javascript, we migrated to a third option:

Have a generic action to route based on button pressed.

In the html:
<html:form action="/routeThisForm">
      <html:submit property="SubmitButton_A"/>
      <html:submit property="SubmitButton_B"/>
...

In struts config.xml:
<action path="/routeThisForm"
      type = "com.whatever.GenericSubmitRouteAction"
      ...
      <forward name="A" path="/A_Action.do"/>
      <forward name="B" path="/B_Action.do"/>
</action>

The code for the generic submit route action looks for which button was
pressed, and maps to the appropriately named forwarding.  If anyone is
interested in this approach I'll post the code for the routing action.

It would be nice if Struts somehow supported this sort of thing (forms with
multiple actions based on submit button pressed) inherently.


Jim Weaver
Software Developer - ThoughtWorks
[EMAIL PROTECTED]




                      "Renato Aganippe"
                      <raganippe@cardiw        To:       "Struts Users
Mailing List" <[EMAIL PROTECTED]>
                      eb.com>                  cc:
                                               Subject:  Re: Struts and Many
Buttons on Single page
                      08/29/2002 11:22
                      AM
                      Please respond to
                      "Struts Users
                      Mailing List"






Hi,

I see two solution for this.

1) For each button, you can define a different form with a different action
attribute


2) You can use a javascript function to change the action attribute

Ex:
<script language=JavaScript>
        function doSubmit(val) {
                if (val==1) {
                        document.forms.consult.action='/save.do';
                }
                else if (val==2) {
                        document.forms.consult.action='/remove.do';
                }
                document.forms.consult.submit();
        }
</script>

<html:form name="consult" type="ActionForm" action="/save.do">

<input type=button class=simpletext value=Valider
onClick="doSubmit(1);return false;">
<input type=button value="Delete" class="simpletext" onClick="if
(confirm('Etes vous certain de vouloir supprimer cet enregistrement ?'))
doSubmit(2); return false;">

</html:form>

Hope it will help,

Renato

----- Original Message -----
From: "Ashish Kulkarni" <[EMAIL PROTECTED]>
To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
Sent: Thursday, August 29, 2002 4:31 PM
Subject: Struts and Many Buttons on Single page


>
> Hi,
>
> I am developing a struts applicatian, I have a jsp page where i have 5
buttons, say Add, Change,Delete, Display.
>
> When i click these buttons they must call different jsp with different
parameters, how can i do it???
>
> Ashish
>
>
> A$HI$H
>
>
> ---------------------------------
> Do You Yahoo!?
> Yahoo! Finance - Get real-time stock quotes



--
To unsubscribe, e-mail:   <
mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <
mailto:[EMAIL PROTECTED]>







--
To unsubscribe, e-mail:
<mailto:[EMAIL PROTECTED]>
For additional commands, e-mail:
<mailto:[EMAIL PROTECTED]>


--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to