Right, so you'd put the code to determine the appropriate value for the "action"
attribute in your action, not in a JSP expression. That value could be stored in
a request attribute and accessed simply as:

<html:form action='<%= request.getAttribute("formaction") %>'>

<html-el:form> might even let you do (never used it):

<html-el:form action="${formaction}">

Of course, this assumes you're doing the MVC thing of disallowing direct client
access to your JSP pages. It just seems confusing to have an attribute that may
or may not be used. I'd rather have the attribute value always static or always
dynamic. But that's personal preference, I really just wanted to correct the
statement about the request-time value. Whether that's of any use in your case
is another issue.

Quoting Mark <[EMAIL PROTECTED]>:

> All that means is you can have
> 
> <mysimpleTag value="<%=scripletVariable%>"/>
> 
> false means you cannot have a scriplet variable as a value
> 
> That's not quite what i wanted to do, but in a way accomplishes a similar
> task without modifying struts.  Its not sexy enough for me ;)
> 
> The whole point of MVC is seperation presentation, business logic, code
> 
> <html:form
>
action="<%=request.getAttribute("formaction")!=null?(String)request.getAttribute("formaction"):"/Default/url"%>"
> method="post"/>
> 
> If i start putting scriptlets like that in my code, im basically breaking the
> MVC design pattern.  Because now, my JSP page is dependent upon that
> scriptlet variable being in the environment, and if it used an object, say
> like this:
> 
> <html:form
>
action="<%=request.getAttribute("myForm")!=null?(MyForm)request.getAttribute("formaction").getFormaction():"/Default/url"%>"
> method="post"/>
> 
> 
> The method I used, I believe, is a tad better because the JSP page will still
> function in the absence of that scriptlet variable, and is cleaner JSP
> code.
> 
> Regards,
> Mark
> 
> 
> *********** REPLY SEPARATOR  ***********
> 
> On 03/14/2003 at 9:27 AM Kris Schneider wrote:
> 
> >The code you've quoted has no impact on whether or not the <html:form>
> tag's
> >"action" attribute is an rtexpr. Look at struts-html.tld:
> >
> ><tag>
> >  <name>form</name>
> >  <tagclass>org.apache.struts.taglib.html.FormTag</tagclass>
> >  <bodycontent>JSP</bodycontent>
> >  <attribute>
> >    <name>action</name>
> >    <required>true</required>
> >    <rtexprvalue>true</rtexprvalue>
> >  </attribute>
> >...
> >
> >Quoting Mark <[EMAIL PROTECTED]>:
> >
> >> No, its not a runtime expression.
> >> 
> >> If you look at the code in FormTag you'll see that its not
> >> 
> >>          results.append("\" action=\"");
> >>         
> >>
> results.append(response.encodeURL(RequestUtils.getActionMappingURL(action,
> >> pageContext)));
> >>          results.append("\"");
> >> 
> >> 
> >> It simply pulls the action mapping from the config.
> >> 
> >> I changed my code to 
> >> 
> >>          results.append("\" action=\"");
> >>    // check if we have a bean thats exposing a formaction property, if
> so,
> >> use that property, otherwise use our assigned action value in the jsp
> page
> >> 
> >>      try {
> >>         Object value = RequestUtils.lookup(pageContext,
> >> beanName,"formaction", null);
> >>         if (value != null && !value.toString().equals(""))
> >>         {
> >>           this.action=ResponseUtils.filter(value.toString());
> >>           System.out.println(value.toString());
> >>         }
> >>       } catch (Exception e)
> >>       {
> >>         e.printStackTrace();
> >>       }
> >>         
> >>
> results.append(response.encodeURL(RequestUtils.getActionMappingURL(action,
> >> pageContext)));
> >> 
> >> 
> >> *********** REPLY SEPARATOR  ***********
> >> 
> >> On 03/14/2003 at 9:50 AM Jose Gonzalez Gomez wrote:
> >> 
> >> >Mark,
> >> >
> >> >    Please, correct me if I'm wrong, but I think the action attribute in
> 
> >> >the <html:form> tag is a run time expression, so there's no need to 
> >> >extend the FormTag class in order to use a dynamic form action.
> >> >
> >> >    Regards
> >> >    Jose
> >> >
> >> >Mark wrote:
> >> >
> >> >>I just wanted to pass on a tidbit that might help one or two people
> out
> >> there.
> >> >>
> >> >>I have a search page that displays the results with checkboxes.  There
> are
> >> two or three different places that i use this same search page, so
> rather
> >> than writing or copying the search results jsp page to several copies
> (to
> >> allow me to post the form thats on the results page to a different
> forward
> >> definition) i made a modifiecation to struts.
> >> >>
> >> >>In the FormTag.java I added some code to peek in the formbean for a
> >> property called "formaction".  If it finds one, it uses this new action
> >> instead of the hard coded one in the jsp page.
> >> >>
> >> >>Thus, in my action class i do this:
> >> >>
> >> >>MyBean myBean=(MyBean)actionForm;
> >> >>
> >> >>myBean.setFormaction("/Some/other/url");
> >> >>return mapping.findforward("default");
> >> >>
> >> >>now i have a jsp page which i can reuse its functionality in several
> places
> >> in my code.
> >> >>
> >> >>I had thought about using a hidden field, but the problem really stems
> from
> >> the statically coded form action="/Url" part.  Since struts doesnt allow
> us
> >> much flexibility here by default, I decided to add my own and it works
> >> great!
> >> >>
> >> >>Regards,
> >> >>Mark
> >> >>
> >> >>
> >> >>
> >> >>
> >> >>---------------------------------------------------------------------
> >> >>To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >>For additional commands, e-mail: [EMAIL PROTECTED]
> >> >>
> >> >>
> >> >>
> >> >>  
> >> >>
> >> >
> >> >
> >> >---------------------------------------------------------------------
> >> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> >For additional commands, e-mail: [EMAIL PROTECTED]
> >> 
> >> 
> >> 
> >> 
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: [EMAIL PROTECTED]
> >> For additional commands, e-mail: [EMAIL PROTECTED]
> >> 
> >
> >
> >-- 
> >Kris Schneider <mailto:[EMAIL PROTECTED]>
> >D.O.Tech       <http://www.dotech.com/>
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 


-- 
Kris Schneider <mailto:[EMAIL PROTECTED]>
D.O.Tech       <http://www.dotech.com/>

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

Reply via email to