Trying again to give out my pseudo JSP... s:form name="myAction" s:textfield name="foo0"/ s:action name="languages" executeResult="true"/ s:textfield name="foo1"/ s:submit/ /s:form
> From: [EMAIL PROTECTED] > To: user@struts.apache.org > Subject: Struts 2 - Repopulate controls when validation fails > Date: Thu, 26 Jun 2008 02:14:28 +0000 > > > I'm following the "How do we repopulate controls when validation fails" FAQ > located at... > > http://struts.apache.org/2.x/docs/how-do-we-repopulate-controls-when-validation-fails.html > > Of the two methods it suggests I am trying to use the 'action tag' method. > Using the simple example from the FAQ works fine, but once I move beyond the > simple and try to drop my "Languages" control inside the tag of another > action I have problems. > > Here's my pseudo JSP (note MyAction)... > > > > > > > > > > MyAction implements validateable and I am validating foo0 and foo1 inside the > validate() method. Here's my validate() code... > > public void validate() { > if (foo0 == null || foo0.length() == 0) > addFieldError("foo0", "Foo0 is required"); > else > foo0 = foo0 + " VALIDATED"; > > if (foo1 == null || foo1.length() == 0) > addFieldError("foo1", "Foo1 is required"); > else > foo1 = foo1 + " VALIDATED"; > } > > The important thing to note about my validation code is that when the > validation succeeds the data entered by the user is updated with the word > "VALIDATED". This may seem like an odd thing to do, but it's part of the > requirements of the project I'm working on. > > Visiting http://localhost/MyAction/myAction_input.action works great. The > page draws, foo0 is empty, the languages control has languages to choose > from, foo1 is empty, the submit button appears. Submitting the form is when I > get into problems. Here are three submit paths and their results... > > 1. foo0 is empty, foo1 is empty. click submit. RESULT - foo0 is empty. foo1 > is empty. SUCCESS! > 2. foo0 = 'A', foo1 is empty. click submit. RESULT - page redraws. foo0 = 'A > VALIDATED'. foo1 is empty. SUCCESS! > 3. foo0 is empty, foo1 = 'A'. click submit. RESULT - page redraws. foo0 is > empty. foo1 = 'A'. FAIL! - foo1 should say 'A VALIDATED' > > For some reason MyAction.setFoo1() is being invoked *again* after I set foo1 > to 'A VALIDATED' in my validate() code. Why is that happening? I know it has > something to do with the Languages control that appears before the foo1 text > field, because when I remove the Languages control everything works as > expected. > > Anyone have any ideas about what the Languages control is doing that is > causing my foo1 field to get reset to the original submit value? I'd really > like to be able to use the 'action tags' approach for repopulating controls, > but 'dropping wherever', as suggested in the FAQ (see link above), does not > seem to be as easy as it sounds. > > Thanks. > > > > > > > > > > > > _________________________________________________________________ > The other season of giving begins 6/24/08. Check out the i’m Talkathon. > http://www.imtalkathon.com?source=TXT_EML_WLH_SeasonOfGiving > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > _________________________________________________________________ The i’m Talkathon starts 6/24/08. For now, give amongst yourselves. http://www.imtalkathon.com?source=TXT_EML_WLH_LearnMore_GiveAmongst