Do not use on any
shared computer
July 24, 2008 01:18pm pdt
 
[x]
Attachment Details

correct way to prefill struts form fields?

Tags: Apache, Struts, 1.3.5, n/a
OK so we are using struts, and have obviously chosen an incorrect approach to prefilling form fields, and I am trying to figure out the correct approach.

Here is what we are currently doing, which from what I have read is *bad*:

<html:text property="myValue1" value="<%= myObject.getMyValue1() %>">
<html:text property="myValue2" value="<%= myObject.getMyValue2() %>">

* I want to use struts forms
* I want to use struts validation of the form inputs
* I have several input fields on the form
* I have an object with the same attributes as the fields in my form
* I am persisting the values in the object, so that they can be recalled when they are needed for editing

Here is what we are trying to accomplish:

When the user opens the form, I would like the fields for both "value1" and "value2" to be prefilled with the values myObject.myValue1 and myObject.myValue2 respectively.

When the user submits the form, I would like both fields to go through struts validation.

If the user has made changes to both value1 and value2, but only value2 does not validate, then I would like to have the form redisplayed with both value1 and value2 prefilled with the values the user just entered (which have not yet be saved, of course, since the form failed validation), NOT the values that were in the form when they first opened it. This works fine for the field which fails validation, but not for the field which does not, which is reset to the original value, even if the user changed it to an acceptable value.

Now that I have researched, I see that this is because I am using the value property of the html:text tag, and the value I put in here is overriding the values that the user enters when the form resets after failing validation.

It doesn't seem that just removing the value portion of the tag and leaving the property portion of the tag does the trick, so if this is the solution, I must be doing something else wrong. If this is the correct approach, how do the values from the object get associated with the properties for the form fields?

So, now I need to know what is the *correct* way to handle this and get the results I want? It seems like the solution must be simpler than I am trying to make it, but I'm not sure.
 
Start your free trial to view this solution
[x]
The Solution Rating System

With so many solutions, how can you tell which solutions are most likely to help you and which ones are not? To provide you with a tool to use, we rate our solutions based on various elements that most accurately determine if a solution is a quality solution. To explain what factors affect the solution rating, here are the elements we take into consideration when formulating our solution rating.

  • The Grade of the Solution
  • The Zone Rank of the Expert Providing the Solution
  • The Number of Author and Expert Comments
  • The Number of Experts Contributing
  • The Feedback of the Community

Your Input Matters
Because of the way the system is set up, the most important variable in this equation is you. As a member of Experts Exchange, you are able to cast your vote on the quality of the solutions in regard to how complete, accurate, helpful and easy to understand each solution is. When you provide your feedback, each rating is adjusted accordingly. So, if you see a solution that has a poor rating that you think is a good solution, let us know by rating it. As you do, the rating will be adjusted and will become more accurate for other members of our site.

If you have any suggestions that you would like to make for our rating system, please ask a question in the Suggestions Zone of Community Support.

Thank you!

Question Stats
Zone: Programming
Question Asked By: choosebooks
Solution Provided By: nag9s2007
Participating Experts: 1
Solution Grade: B
Views: 11
Translate:
Loading Advertisement...
 
[+][-]Administrative Comment by ForestDenizen
Administrative Comment by ForestDenizen:

All comments and solutions are available to Premium Service Members only.

Start your 7-day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
[+][-]Accepted Solution by nag9s2007
Accepted Solution by nag9s2007:

All comments and solutions are available to Premium Service Members only.

Start your 7-day free trial and see for yourself why Experts Exchange is the easiest and most proven technology resource in the world. Get Started

Already a member? Login to view this solution.

 
 
Loading Advertisement...
20080723-EE-VQP-34 / EE_QW_2_20070628