This week's giveaway is in the Android forum.
We're giving away four copies of Android Security Essentials Live Lessons and have Godfrey Nolan on-line!
See this thread for details.
The moose likes Struts and the fly likes Loosing changes in html:select Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login

Win a copy of Android Security Essentials Live Lessons this week in the Android forum!
JavaRanch » Java Forums » Frameworks » Struts
Bookmark "Loosing changes in html:select" Watch "Loosing changes in html:select" New topic

Loosing changes in html:select

Adam Kreiss
Ranch Hand

Joined: Sep 12, 2005
Posts: 35
Hey guys/gals,

I'm trying to populate a multi-selection html:select list in Struts. It works fine except for one thing. If I change the selection and try to submit and have the form validation fail, I loose any changes within the list. All other fields on the form are saved correctly.

This is the code I'm using.

I don't have a reset method in the form (although I initialize the array containing the selected values to a zero-length array in the declaration) and it doesn't get touched in the validate method. The only methods that influence the value for the array are its getter and setter.

Does anyone have any idea how to fix this?

Merrill Higginson
Ranch Hand

Joined: Feb 15, 2005
Posts: 4864
The first thing I'd do to debug this is put a System.out.println inside the setUsers() method on the form bean to see whether it's being called or not. If it is being called, there's something funny going on in your form bean. If it's not getting called, check the spelling to make sure the property name in the jsp matches the setter name on the form bean.

If these approches don't work, show us:
-The relevant portions of the form bean
-The relevant portions of struts-config.xml
-The jsp <html:form> tag.

Consultant, Sima Solutions
Adam Kreiss
Ranch Hand

Joined: Sep 12, 2005
Posts: 35
Thanks for the help. The problem was with the struts config file.

It turned out that I was forwarding back to the initialization action for the page when validation failed. The list was the only field that I was loading from a database on that page so it was getting reinitialized everytime validation failed.
Kim Kantola
Ranch Hand

Joined: May 17, 2001
Posts: 274
I have a question regarding this approach. If an action fwd is used as the "input" value of an action in the case of an error,(i.e., when a form validation fails, fwd to a instead of somepage.jsp) when struts forwards to this new action, how do you get a handle on the ActionErrors object created upon the form validation method call?
Kim Kantola
Ranch Hand

Joined: May 17, 2001
Posts: 274
Just found the answer to my question, looks like struts puts the ActionErrors into the request, so a call to servletRequest.getAttribute("org.apache.struts.action.ERROR");
will return the ActionErrors object.
I agree. Here's the link:
subject: Loosing changes in html:select
Similar Threads
Using html:options tags - novice to struts
Struts indexed html:select , PLZ HELP
dependable or linked dropdown lists
save indexed properties
Help for html:option tag