1) Define a java script that takes the action you want as an argument
and submits the form with it, e.g.:

<SCRIPT>
function refresh(url) {
        var form = document.forms[0];
        form.action = url;
        form.submit();
}
</SCRIPT>

2) Reference the procedure in one of the struts "on*" attributes, e.g.:
<html:select property="foo" onchange="refresh('somewhere.do')"/>

A couple of caveats:

- The <html:submit> tag names the button "submit", so when you attempt
to invoke form.submit(), javascript chokes because it thinks you're
referencing the button.  To solve this, use the "property" attribute on
the <html:submit> to call it something else.  I use "OK".

- Make sure you don't have a property/field in your JSP/Form called
"action".  You'll run into the same problem as with the submit.

- Hardcoding the action strings is a bad idea, because you have to
include the name of the webapp, or get tricky with relative URLs.  Use
<html:rewrite>.  However, the JSP compiler won't recognize
<html:rewrite> that inside nested quotes, so you couldn't just change
the 'somewhere.do' above to "<html:rewrite page='somewhere.do'">.  Put
the rewrite into a simple string variable and then concatenate to it, or
refer to the strings symbolically.  For example, the above javascript
procedure might be:

<script>
function refresh(verb) {
    var form = document.forms[0];
    if (verb == "create") {
        form.action="<html:rewrite page='/widget/create.do'/>";
    } else {
        form.action="<html:rewrite page='/widget/edit.do'/>";
    }
    form.submit();
}
</script>       

and then in the html tag you would put:
<html:select property="foo" onchange="refresh('create')"/>

HTH

sjt

> 
> Hi,
> If I have to submit the JSP page when I use struts 1.0.2 with 
> the form action changing dynamically based on user action, 
> how do I set the action field using javascript? If anyone has 
> any suggestions please pass them to me.
> 
> Thanking you in anticipation
> 

_______________________________________________
MVC-Programmers mailing list
[EMAIL PROTECTED]
http://www.netbean.net/mailman/listinfo/mvc-programmers

Reply via email to