struts-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Frank W. Zammetti" <fzli...@omnytex.com>
Subject Re: [OT] Re: Passing value from Struts tag in JSP to Action class
Date Mon, 13 Aug 2007 14:37:30 GMT
Oleg Konovalov wrote:
> No, I am not using any AJAX.
> 
> On Submit it supposed to process that row, go to DB and refresh the whole
> page,
> so to come back on the same page.
> 
> Also, my form is declared as <html:form>, so onClick I use
> "form.action='action.do?command=notify'", I can't get rid of it,
> but it doesn't want to coexist with any Javascript.
> 
> I would not like to have multiple forms on one JSP page.
> 
> So which of your suggestions would you recommend in my case ?
> And how do I get a value of rowId in Action class (notify action),
> via request.getSession().getAttribute("rowId") ?

You wouldn't get it from SESSION, you'd get it from REQUEST... Unless 
your intention is to have a session-scoped ActionForm, but then you 
wouldn't get at the value as you've shown anyway (in fact, even if it's 
a request-scoped from, that's the wrong way to get the value, since your 
bypassing Struts to do it).

Since you aren't using AJAX, and you want a single form, all you need to 
do is set things up in a 100% typical Struts fashion... have the HTML 
form submit to the Action you want it to, and connect an ActionForm, 
probably request-scoped, to that Action.  Make sure your ActionForm 
includes the properly named getter/setter/field for it.  Then, on your 
HTML form, add a hidden field with the name rowId, and make each button 
on the form a submit button (you can have more than one), and add an 
onClick event to it that does this:

this.form.rowId.value='${list.rowId}';

That should do it.  Then, in your Action you just do:

String rowId = form.getRowId();

...assuming form is the name of the ActionForm parameter.  That should 
be all you need to do.

Frank

--
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com
AIM/Yahoo: fzammetti
MSN: fzammetti@hotmail.com
Author of "Practical Ajax Projects With Java Technology"
  (2006, Apress, ISBN 1-59059-695-1)
and "JavaScript, DOM Scripting and Ajax Projects"
  (2007, Apress, ISBN 1-59059-816-4)
Java Web Parts - http://javawebparts.sourceforge.net
  Supplying the wheel, so you don't have to reinvent it!

> Thank you,
> Oleg.
> 
> 
> 
> On 8/12/07, Frank W. Zammetti <fzlists@omnytex.com> wrote:
>> Oleg Konovalov wrote:
>>> I have a bunch of rows [ArrayList of ValueObject Classes], and a button
>>> corresponding to each row.
>>> I populate the data from each row in forEach loop.
>>> User is supposed to click on one of these buttons [selecting one row to
>>> process],
>>> and onClick event I need to pass the rowId of the to the new Action
>>> ["notify"] in Action class.
>>> Sounds like a trivial task ?
>>> I am just not sure how to implement that correctly in Struts, pretty new
>> to
>>> Struts.
>> Depends on what you expect to happen when they click the button... is
>> the entire page refreshed, or are you thinking of doing some AJAX here?
>> If the entire page is going to refresh, I'd simply make each row its
>> own form and have the button be a regular submit button.  Add a hidden
>> field to each form that has the rowId as its value.  Simple, standard,
>> will work just fine.  Alternatively, if you don't like multiple forms,
>> then have a single hidden form field which again is the row Id, then
>> onClick of the button do:
>>
>> this.form.rowId.value='${list.rowId}';this.form.submit();
>>
>> If your thinking AJAX here, then there's all sorts of ways you could do
>> it.
>>
>>> Maybe I should use
>>> <html:submit src=pic.gif onclick="form.action='action.do?command=notify'"
>> *
>>> value*="${list.rowId}">
>>> instead of HTML <input type=image...> ?
>> Yes, in theory that could work, but I think it's a bit too complicated.
>> Again, if your not thinking AJAX here, just do a plain form
>> submission, it's the best answer.  If you DO want to do AJAX, let us
>> know and we can suggest ways to go about it.
>>
>> Dave's suggestions are good too, it just comes down to how you really
>> want this to work.
>>
>>> TIA,
>>> Oleg.
>> Frank
>>
>> --
>> Frank W. Zammetti
>> Founder and Chief Software Architect
>> Omnytex Technologies
>> http://www.omnytex.com
>> AIM/Yahoo: fzammetti
>> MSN: fzammetti@hotmail.com
>> Author of "Practical Ajax Projects With Java Technology"
>> (2006, Apress, ISBN 1-59059-695-1)
>> and "JavaScript, DOM Scripting and Ajax Projects"
>> (2007, Apress, ISBN 1-59059-816-4)
>> Java Web Parts - http://javawebparts.sourceforge.net
>> Supplying the wheel, so you don't have to reinvent it!
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
> 
> 
> ------------------------------------------------------------------------
> 
> No virus found in this incoming message.
> Checked by AVG Free Edition. 
> Version: 7.5.476 / Virus Database: 269.11.15/949 - Release Date: 8/12/2007 11:03 AM



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


Mime
View raw message