You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Mitch Claborn <mi...@claborn.net> on 2010/04/28 18:47:54 UTC
input fields with dynamic names
I'm sure I've seen the answer to this somewhere, but darned if I can
find it now when I need it!
I have a page that allows edits of various options, the names of which
are dynamically retrieved from the database. If I have the code in the
JSP as below, the value displayed in the text field is always that from
the database. If there is a validation error, the user's input value is
not maintained as it would be if there were an explicit getter/setter
for each option name. Is there a way to code the Action (or the JSP) so
that the value shown is the user's input value if there is an error?
<s:iterator value="authorizedOptions" id="o">
<s:textfield size="10" name="${o.optionName}"
id="${o.optionName}" value="${o.valueInt}" />
Mitch
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: input fields with dynamic names
Posted by Dale Newfield <da...@newfield.org>.
On 5/3/10 10:08 AM, Mitch Claborn wrote:
> Bump. Any other ideas?
Yes. ParameterAware allows you to handle parameters without the setters
and getters you think are necessary. Look there again.
-Dale
> Mitch Claborn wrote:
>> That works for setting parameter names, but not so well when the tags
>> in the JSP need to retrieve the value for display in the page,
>> particularly if there is a validation error. If there is a static
>> field named "fred" and the action has a "getFred()" method, then all
>> is good. But the field names in my case are dynamic, so I can't have a
>> getNNNNN for all of the dynamic fields.
>>
>> mitch
>>
>>
>> Greg Lindholm wrote:
>>> You are probably looking for ParameterAware
>>>
>>> http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/interceptor/ParameterAware.html
>>>
>>>
>>>
>>> On Wed, Apr 28, 2010 at 12:47 PM, Mitch Claborn <mi...@claborn.net>
>>> wrote:
>>>
>>>> I'm sure I've seen the answer to this somewhere, but darned if I can
>>>> find it
>>>> now when I need it!
>>>>
>>>> I have a page that allows edits of various options, the names of
>>>> which are
>>>> dynamically retrieved from the database. If I have the code in the
>>>> JSP as
>>>> below, the value displayed in the text field is always that from the
>>>> database. If there is a validation error, the user's input value is not
>>>> maintained as it would be if there were an explicit getter/setter
>>>> for each
>>>> option name. Is there a way to code the Action (or the JSP) so that the
>>>> value shown is the user's input value if there is an error?
>>>>
>>>> <s:iterator value="authorizedOptions" id="o">
>>>> <s:textfield size="10" name="${o.optionName}"
>>>> id="${o.optionName}" value="${o.valueInt}" />
>>>>
>>>> Mitch
>>>>
>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>
>>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: input fields with dynamic names
Posted by Mario Lipinski <ma...@lipinski.tk>.
Am 04.05.10 06:37, schrieb Robert Graf-Waczenski:
> Have your Action method getAuthorizedOptions() return something like a
> Hashtable<String,MyBean>, where MyBean is your inner thingy with methods
> setWhateverProperty() and getWhateverProperty(). Then your iterator
> incantation as below:
Thx. This also helped me a lot. Also works with Map<Integer,Integer> in
general.
My problem which I posted here before a few weeks was, I always wanted
to implement a setter in the action method for this.
Mario
RE: input fields with dynamic names
Posted by Martin Gainty <mg...@hotmail.com>.
just to be safe i would add the id attribute id="Person %{key}" to the example
use of %{key} to uniquely identify each created textfield DOM element would work
i did'nt mention there is a status counter for iterator to use as an indexer e.g. <s:iterator... status="stat">
//assuming there is a 1:1 mapping between %{key} and the incremental value of stat,count you could use
name="authorizedOptions['%{#stat.count}'].whateverProperty" />
robert's method is correct as is
thanks,
Martin Gainty
______________________________________________
Note de déni et de confidentialité
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni.
> Date: Tue, 4 May 2010 15:37:41 +0200
> From: rgw@lsoft.com
> To: user@struts.apache.org
> Subject: Re: input fields with dynamic names
>
> Have your Action method getAuthorizedOptions() return something like a
> Hashtable<String,MyBean>, where MyBean is your inner thingy with methods
> setWhateverProperty() and getWhateverProperty(). Then your iterator
> incantation as below:
>
> <s:iterator value="authorizedOptions" id="o">
>
> would deliver instances of Hashtable.Entry<String,MyBean>, which means
> that you would be able to access the dynamic current String value as
> "key" and would be able to call the MyBean method via
> value.whateverProperty. So far this is pretty standard s:iterator talk.
> Now things get a bit more complex, but Martin was correct in his
> example, but maybe the following is closer to what you need:
>
> <s:iterator value="authorizedOptions" id="o">
> <s:textfield label="Person %{key}"
> name="authorizedOptions['%{key}'].whateverProperty" />
> </s:iterator>
>
> The magic is in the "name" property, which maps to dynamic calls to
> YourActionClass.getAuthorizedOptions(keyValue).getWhateverProperty() and
> YourActionClass.getAuthorizedOptions(keyValue).setWhateverProperty() for
> each keyValue that was added to your Hashtable when you popuplated it
> from wherever your data came from.
>
> Does this help?
>
> Robert
>
> Am 04.05.2010 15:20, schrieb Mitch Claborn:
> > I could probably restructure my data to make it fit that model, but
> > that is not the ideal solution. My data is structured more like a
> > hash, where the keys are essentially arbitrary and unpredictable. Is
> > there something similar that would work with that kind of structure?
> >
> > Mitch
> >
> >
> > Martin Gainty wrote:
> >> //The action class contains a (dynamically populated) collection such
> >> as persons defined here
> >>
> >> @Result(name="list", value="listPeople.action",
> >> type=ServletRedirectResult.class)
> >> public class EditPersonAction extends ActionSupport {
> >> ArrayList<Person> persons = new ArrayList()
> >> <snip>
> >> }
> >>
> >> //then the jsp makes reference to persons ArrayList from the action
> >> class and references specific rows by utilising stat.index by the
> >> s:iterator iterator
> >>
> >> <s:form action="submitPersonInfo" namespace="/conversion" method="post">
> >> <%--
> >> The following is done Dynamically
> >> --%>
> >> <s:iterator value="new int[3]" status="stat">
> >> <s:textfield label="%{'Person '+#stat.index+' Name'}"
> >> name="%{'persons['+#stat.index+'].name'}" />
> >> <s:textfield label="%{'Person '+#stat.index+' Age'}"
> >> name="%{'persons['+#stat.index+'].age'}" />
> >> </s:iterator>
> >>
> >> this would achieve the effect of dynamically populating n number of
> >> Person objects
> >>
> >> does this answer the question?
> >> Martin Gainty ______________________________________________ Verzicht
> >> und Vertraulichkeitanmerkung/Note de déni et de confidentialité
> >>
> >> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene
> >> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede
> >> unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig.
> >> Diese Nachricht dient lediglich dem Austausch von Informationen und
> >> entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten
> >> Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den
> >> Inhalt uebernehmen.
> >> Ce message est confidentiel et peut être privilégié. Si vous n'êtes
> >> pas le destinataire prévu, nous te demandons avec bonté que pour
> >> satisfaire informez l'expéditeur. N'importe quelle diffusion non
> >> autorisée ou la copie de ceci est interdite. Ce message sert à
> >> l'information seulement et n'aura pas n'importe quel effet légalement
> >> obligatoire. Étant donné que les email peuvent facilement être sujets
> >> à la manipulation, nous ne pouvons accepter aucune responsabilité
> >> pour le contenu fourni.
> >>
> >>
> >>
> >>
> >>> Date: Mon, 3 May 2010 09:08:29 -0500
> >>> From: mitch@claborn.net
> >>> To: user@struts.apache.org
> >>> Subject: Re: input fields with dynamic names
> >>>
> >>> Bump. Any other ideas?
> >>>
> >>> mitch
> >>>
> >>>
> >>> Mitch Claborn wrote:
> >>>> That works for setting parameter names, but not so well when the
> >>>> tags in the JSP need to retrieve the value for display in the page,
> >>>> particularly if there is a validation error. If there is a static
> >>>> field named "fred" and the action has a "getFred()" method, then
> >>>> all is good. But the field names in my case are dynamic, so I
> >>>> can't have a getNNNNN for all of the dynamic fields.
> >>>>
> >>>> mitch
> >>>>
> >>>>
> >>>> Greg Lindholm wrote:
> >>>>> You are probably looking for ParameterAware
> >>>>>
> >>>>> http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/interceptor/ParameterAware.html
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Wed, Apr 28, 2010 at 12:47 PM, Mitch Claborn
> >>>>> <mi...@claborn.net> wrote:
> >>>>>
> >>>>>> I'm sure I've seen the answer to this somewhere, but darned if I
> >>>>>> can find it
> >>>>>> now when I need it!
> >>>>>>
> >>>>>> I have a page that allows edits of various options, the names of
> >>>>>> which are
> >>>>>> dynamically retrieved from the database. If I have the code in
> >>>>>> the JSP as
> >>>>>> below, the value displayed in the text field is always that from the
> >>>>>> database. If there is a validation error, the user's input value
> >>>>>> is not
> >>>>>> maintained as it would be if there were an explicit getter/setter
> >>>>>> for each
> >>>>>> option name. Is there a way to code the Action (or the JSP) so
> >>>>>> that the
> >>>>>> value shown is the user's input value if there is an error?
> >>>>>>
> >>>>>> <s:iterator value="authorizedOptions" id="o">
> >>>>>> <s:textfield size="10" name="${o.optionName}"
> >>>>>> id="${o.optionName}" value="${o.valueInt}" />
> >>>>>>
> >>>>>> Mitch
> >>>>>>
> >>>>>>
> >>>>>> ---------------------------------------------------------------------
> >>>>>>
> >>>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> >>>>>> For additional commands, e-mail: user-help@struts.apache.org
> >>>>>>
> >>>>>>
> >>>>> ---------------------------------------------------------------------
> >>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> >>>>> For additional commands, e-mail: user-help@struts.apache.org
> >>>>>
> >>>>>
> >>>> ---------------------------------------------------------------------
> >>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> >>>> For additional commands, e-mail: user-help@struts.apache.org
> >>>>
> >>>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> >>> For additional commands, e-mail: user-help@struts.apache.org
> >>>
> >>
> >> _________________________________________________________________
> >> The New Busy is not the old busy. Search, chat and e-mail from your
> >> inbox.
> >> http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > For additional commands, e-mail: user-help@struts.apache.org
> >
> >
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
_________________________________________________________________
The New Busy is not the old busy. Search, chat and e-mail from your inbox.
http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3
Re: input fields with dynamic names
Posted by Robert Graf-Waczenski <rg...@lsoft.com>.
Have your Action method getAuthorizedOptions() return something like a
Hashtable<String,MyBean>, where MyBean is your inner thingy with methods
setWhateverProperty() and getWhateverProperty(). Then your iterator
incantation as below:
<s:iterator value="authorizedOptions" id="o">
would deliver instances of Hashtable.Entry<String,MyBean>, which means
that you would be able to access the dynamic current String value as
"key" and would be able to call the MyBean method via
value.whateverProperty. So far this is pretty standard s:iterator talk.
Now things get a bit more complex, but Martin was correct in his
example, but maybe the following is closer to what you need:
<s:iterator value="authorizedOptions" id="o">
<s:textfield label="Person %{key}"
name="authorizedOptions['%{key}'].whateverProperty" />
</s:iterator>
The magic is in the "name" property, which maps to dynamic calls to
YourActionClass.getAuthorizedOptions(keyValue).getWhateverProperty() and
YourActionClass.getAuthorizedOptions(keyValue).setWhateverProperty() for
each keyValue that was added to your Hashtable when you popuplated it
from wherever your data came from.
Does this help?
Robert
Am 04.05.2010 15:20, schrieb Mitch Claborn:
> I could probably restructure my data to make it fit that model, but
> that is not the ideal solution. My data is structured more like a
> hash, where the keys are essentially arbitrary and unpredictable. Is
> there something similar that would work with that kind of structure?
>
> Mitch
>
>
> Martin Gainty wrote:
>> //The action class contains a (dynamically populated) collection such
>> as persons defined here
>>
>> @Result(name="list", value="listPeople.action",
>> type=ServletRedirectResult.class)
>> public class EditPersonAction extends ActionSupport {
>> ArrayList<Person> persons = new ArrayList()
>> <snip>
>> }
>>
>> //then the jsp makes reference to persons ArrayList from the action
>> class and references specific rows by utilising stat.index by the
>> s:iterator iterator
>>
>> <s:form action="submitPersonInfo" namespace="/conversion" method="post">
>> <%--
>> The following is done Dynamically
>> --%>
>> <s:iterator value="new int[3]" status="stat">
>> <s:textfield label="%{'Person '+#stat.index+' Name'}"
>> name="%{'persons['+#stat.index+'].name'}" />
>> <s:textfield label="%{'Person '+#stat.index+' Age'}"
>> name="%{'persons['+#stat.index+'].age'}" />
>> </s:iterator>
>>
>> this would achieve the effect of dynamically populating n number of
>> Person objects
>>
>> does this answer the question?
>> Martin Gainty ______________________________________________ Verzicht
>> und Vertraulichkeitanmerkung/Note de déni et de confidentialité
>>
>> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene
>> Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede
>> unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig.
>> Diese Nachricht dient lediglich dem Austausch von Informationen und
>> entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten
>> Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den
>> Inhalt uebernehmen.
>> Ce message est confidentiel et peut être privilégié. Si vous n'êtes
>> pas le destinataire prévu, nous te demandons avec bonté que pour
>> satisfaire informez l'expéditeur. N'importe quelle diffusion non
>> autorisée ou la copie de ceci est interdite. Ce message sert à
>> l'information seulement et n'aura pas n'importe quel effet légalement
>> obligatoire. Étant donné que les email peuvent facilement être sujets
>> à la manipulation, nous ne pouvons accepter aucune responsabilité
>> pour le contenu fourni.
>>
>>
>>
>>
>>> Date: Mon, 3 May 2010 09:08:29 -0500
>>> From: mitch@claborn.net
>>> To: user@struts.apache.org
>>> Subject: Re: input fields with dynamic names
>>>
>>> Bump. Any other ideas?
>>>
>>> mitch
>>>
>>>
>>> Mitch Claborn wrote:
>>>> That works for setting parameter names, but not so well when the
>>>> tags in the JSP need to retrieve the value for display in the page,
>>>> particularly if there is a validation error. If there is a static
>>>> field named "fred" and the action has a "getFred()" method, then
>>>> all is good. But the field names in my case are dynamic, so I
>>>> can't have a getNNNNN for all of the dynamic fields.
>>>>
>>>> mitch
>>>>
>>>>
>>>> Greg Lindholm wrote:
>>>>> You are probably looking for ParameterAware
>>>>>
>>>>> http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/interceptor/ParameterAware.html
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Apr 28, 2010 at 12:47 PM, Mitch Claborn
>>>>> <mi...@claborn.net> wrote:
>>>>>
>>>>>> I'm sure I've seen the answer to this somewhere, but darned if I
>>>>>> can find it
>>>>>> now when I need it!
>>>>>>
>>>>>> I have a page that allows edits of various options, the names of
>>>>>> which are
>>>>>> dynamically retrieved from the database. If I have the code in
>>>>>> the JSP as
>>>>>> below, the value displayed in the text field is always that from the
>>>>>> database. If there is a validation error, the user's input value
>>>>>> is not
>>>>>> maintained as it would be if there were an explicit getter/setter
>>>>>> for each
>>>>>> option name. Is there a way to code the Action (or the JSP) so
>>>>>> that the
>>>>>> value shown is the user's input value if there is an error?
>>>>>>
>>>>>> <s:iterator value="authorizedOptions" id="o">
>>>>>> <s:textfield size="10" name="${o.optionName}"
>>>>>> id="${o.optionName}" value="${o.valueInt}" />
>>>>>>
>>>>>> Mitch
>>>>>>
>>>>>>
>>>>>> ---------------------------------------------------------------------
>>>>>>
>>>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>>>
>>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>>
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
>>
>> _________________________________________________________________
>> The New Busy is not the old busy. Search, chat and e-mail from your
>> inbox.
>> http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: input fields with dynamic names
Posted by Mitch Claborn <mi...@claborn.net>.
I could probably restructure my data to make it fit that model, but that
is not the ideal solution. My data is structured more like a hash,
where the keys are essentially arbitrary and unpredictable. Is there
something similar that would work with that kind of structure?
Mitch
Martin Gainty wrote:
> //The action class contains a (dynamically populated) collection such as persons defined here
>
> @Result(name="list", value="listPeople.action", type=ServletRedirectResult.class)
> public class EditPersonAction extends ActionSupport {
> ArrayList<Person> persons = new ArrayList()
> <snip>
> }
>
> //then the jsp makes reference to persons ArrayList from the action class and references specific rows by utilising stat.index by the s:iterator iterator
>
> <s:form action="submitPersonInfo" namespace="/conversion" method="post">
> <%--
> The following is done Dynamically
> --%>
> <s:iterator value="new int[3]" status="stat">
> <s:textfield label="%{'Person '+#stat.index+' Name'}"
> name="%{'persons['+#stat.index+'].name'}" />
> <s:textfield label="%{'Person '+#stat.index+' Age'}"
> name="%{'persons['+#stat.index+'].age'}" />
> </s:iterator>
>
> this would achieve the effect of dynamically populating n number of Person objects
>
> does this answer the question?
> Martin Gainty
> ______________________________________________
> Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
>
> Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
> Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni.
>
>
>
>
>
>> Date: Mon, 3 May 2010 09:08:29 -0500
>> From: mitch@claborn.net
>> To: user@struts.apache.org
>> Subject: Re: input fields with dynamic names
>>
>> Bump. Any other ideas?
>>
>> mitch
>>
>>
>> Mitch Claborn wrote:
>>
>>> That works for setting parameter names, but not so well when the tags
>>> in the JSP need to retrieve the value for display in the page,
>>> particularly if there is a validation error. If there is a static
>>> field named "fred" and the action has a "getFred()" method, then all
>>> is good. But the field names in my case are dynamic, so I can't have
>>> a getNNNNN for all of the dynamic fields.
>>>
>>> mitch
>>>
>>>
>>> Greg Lindholm wrote:
>>>
>>>> You are probably looking for ParameterAware
>>>>
>>>> http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/interceptor/ParameterAware.html
>>>>
>>>>
>>>>
>>>> On Wed, Apr 28, 2010 at 12:47 PM, Mitch Claborn <mi...@claborn.net>
>>>> wrote:
>>>>
>>>>
>>>>> I'm sure I've seen the answer to this somewhere, but darned if I can
>>>>> find it
>>>>> now when I need it!
>>>>>
>>>>> I have a page that allows edits of various options, the names of
>>>>> which are
>>>>> dynamically retrieved from the database. If I have the code in the
>>>>> JSP as
>>>>> below, the value displayed in the text field is always that from the
>>>>> database. If there is a validation error, the user's input value is
>>>>> not
>>>>> maintained as it would be if there were an explicit getter/setter
>>>>> for each
>>>>> option name. Is there a way to code the Action (or the JSP) so that
>>>>> the
>>>>> value shown is the user's input value if there is an error?
>>>>>
>>>>> <s:iterator value="authorizedOptions" id="o">
>>>>> <s:textfield size="10" name="${o.optionName}"
>>>>> id="${o.optionName}" value="${o.valueInt}" />
>>>>>
>>>>> Mitch
>>>>>
>>>>>
>>>>> ---------------------------------------------------------------------
>>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>>
>>>>>
>>>>>
>>>>>
>>>> ---------------------------------------------------------------------
>>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>>> For additional commands, e-mail: user-help@struts.apache.org
>>>>
>>>>
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
>>>
>>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>
> _________________________________________________________________
> The New Busy is not the old busy. Search, chat and e-mail from your inbox.
> http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
RE: input fields with dynamic names
Posted by Martin Gainty <mg...@hotmail.com>.
//The action class contains a (dynamically populated) collection such as persons defined here
@Result(name="list", value="listPeople.action", type=ServletRedirectResult.class)
public class EditPersonAction extends ActionSupport {
ArrayList<Person> persons = new ArrayList()
<snip>
}
//then the jsp makes reference to persons ArrayList from the action class and references specific rows by utilising stat.index by the s:iterator iterator
<s:form action="submitPersonInfo" namespace="/conversion" method="post">
<%--
The following is done Dynamically
--%>
<s:iterator value="new int[3]" status="stat">
<s:textfield label="%{'Person '+#stat.index+' Name'}"
name="%{'persons['+#stat.index+'].name'}" />
<s:textfield label="%{'Person '+#stat.index+' Age'}"
name="%{'persons['+#stat.index+'].age'}" />
</s:iterator>
this would achieve the effect of dynamically populating n number of Person objects
does this answer the question?
Martin Gainty
______________________________________________
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni.
> Date: Mon, 3 May 2010 09:08:29 -0500
> From: mitch@claborn.net
> To: user@struts.apache.org
> Subject: Re: input fields with dynamic names
>
> Bump. Any other ideas?
>
> mitch
>
>
> Mitch Claborn wrote:
> > That works for setting parameter names, but not so well when the tags
> > in the JSP need to retrieve the value for display in the page,
> > particularly if there is a validation error. If there is a static
> > field named "fred" and the action has a "getFred()" method, then all
> > is good. But the field names in my case are dynamic, so I can't have
> > a getNNNNN for all of the dynamic fields.
> >
> > mitch
> >
> >
> > Greg Lindholm wrote:
> >> You are probably looking for ParameterAware
> >>
> >> http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/interceptor/ParameterAware.html
> >>
> >>
> >>
> >> On Wed, Apr 28, 2010 at 12:47 PM, Mitch Claborn <mi...@claborn.net>
> >> wrote:
> >>
> >>> I'm sure I've seen the answer to this somewhere, but darned if I can
> >>> find it
> >>> now when I need it!
> >>>
> >>> I have a page that allows edits of various options, the names of
> >>> which are
> >>> dynamically retrieved from the database. If I have the code in the
> >>> JSP as
> >>> below, the value displayed in the text field is always that from the
> >>> database. If there is a validation error, the user's input value is
> >>> not
> >>> maintained as it would be if there were an explicit getter/setter
> >>> for each
> >>> option name. Is there a way to code the Action (or the JSP) so that
> >>> the
> >>> value shown is the user's input value if there is an error?
> >>>
> >>> <s:iterator value="authorizedOptions" id="o">
> >>> <s:textfield size="10" name="${o.optionName}"
> >>> id="${o.optionName}" value="${o.valueInt}" />
> >>>
> >>> Mitch
> >>>
> >>>
> >>> ---------------------------------------------------------------------
> >>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> >>> For additional commands, e-mail: user-help@struts.apache.org
> >>>
> >>>
> >>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> >> For additional commands, e-mail: user-help@struts.apache.org
> >>
> >>
> >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> > For additional commands, e-mail: user-help@struts.apache.org
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
_________________________________________________________________
The New Busy is not the old busy. Search, chat and e-mail from your inbox.
http://www.windowslive.com/campaign/thenewbusy?ocid=PID28326::T:WLMTAGL:ON:WL:en-US:WM_HMP:042010_3
Re: input fields with dynamic names
Posted by Mitch Claborn <mi...@claborn.net>.
Bump. Any other ideas?
mitch
Mitch Claborn wrote:
> That works for setting parameter names, but not so well when the tags
> in the JSP need to retrieve the value for display in the page,
> particularly if there is a validation error. If there is a static
> field named "fred" and the action has a "getFred()" method, then all
> is good. But the field names in my case are dynamic, so I can't have
> a getNNNNN for all of the dynamic fields.
>
> mitch
>
>
> Greg Lindholm wrote:
>> You are probably looking for ParameterAware
>>
>> http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/interceptor/ParameterAware.html
>>
>>
>>
>> On Wed, Apr 28, 2010 at 12:47 PM, Mitch Claborn <mi...@claborn.net>
>> wrote:
>>
>>> I'm sure I've seen the answer to this somewhere, but darned if I can
>>> find it
>>> now when I need it!
>>>
>>> I have a page that allows edits of various options, the names of
>>> which are
>>> dynamically retrieved from the database. If I have the code in the
>>> JSP as
>>> below, the value displayed in the text field is always that from the
>>> database. If there is a validation error, the user's input value is
>>> not
>>> maintained as it would be if there were an explicit getter/setter
>>> for each
>>> option name. Is there a way to code the Action (or the JSP) so that
>>> the
>>> value shown is the user's input value if there is an error?
>>>
>>> <s:iterator value="authorizedOptions" id="o">
>>> <s:textfield size="10" name="${o.optionName}"
>>> id="${o.optionName}" value="${o.valueInt}" />
>>>
>>> Mitch
>>>
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>>> For additional commands, e-mail: user-help@struts.apache.org
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: input fields with dynamic names
Posted by Mitch Claborn <mi...@claborn.net>.
That works for setting parameter names, but not so well when the tags in
the JSP need to retrieve the value for display in the page, particularly
if there is a validation error. If there is a static field named "fred"
and the action has a "getFred()" method, then all is good. But the
field names in my case are dynamic, so I can't have a getNNNNN for all
of the dynamic fields.
mitch
Greg Lindholm wrote:
> You are probably looking for ParameterAware
>
> http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/interceptor/ParameterAware.html
>
>
> On Wed, Apr 28, 2010 at 12:47 PM, Mitch Claborn <mi...@claborn.net> wrote:
>
>> I'm sure I've seen the answer to this somewhere, but darned if I can find it
>> now when I need it!
>>
>> I have a page that allows edits of various options, the names of which are
>> dynamically retrieved from the database. If I have the code in the JSP as
>> below, the value displayed in the text field is always that from the
>> database. If there is a validation error, the user's input value is not
>> maintained as it would be if there were an explicit getter/setter for each
>> option name. Is there a way to code the Action (or the JSP) so that the
>> value shown is the user's input value if there is an error?
>>
>> <s:iterator value="authorizedOptions" id="o">
>> <s:textfield size="10" name="${o.optionName}"
>> id="${o.optionName}" value="${o.valueInt}" />
>>
>> Mitch
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>> For additional commands, e-mail: user-help@struts.apache.org
>>
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org
Re: input fields with dynamic names
Posted by Greg Lindholm <gr...@gmail.com>.
You are probably looking for ParameterAware
http://struts.apache.org/2.x/struts2-core/apidocs/org/apache/struts2/interceptor/ParameterAware.html
On Wed, Apr 28, 2010 at 12:47 PM, Mitch Claborn <mi...@claborn.net> wrote:
> I'm sure I've seen the answer to this somewhere, but darned if I can find it
> now when I need it!
>
> I have a page that allows edits of various options, the names of which are
> dynamically retrieved from the database. If I have the code in the JSP as
> below, the value displayed in the text field is always that from the
> database. If there is a validation error, the user's input value is not
> maintained as it would be if there were an explicit getter/setter for each
> option name. Is there a way to code the Action (or the JSP) so that the
> value shown is the user's input value if there is an error?
>
> <s:iterator value="authorizedOptions" id="o">
> <s:textfield size="10" name="${o.optionName}"
> id="${o.optionName}" value="${o.valueInt}" />
>
> Mitch
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org