For expressions like "x.y" and "x.z" Stripes will call getX() to get the "x" property of your ActionBean. If getX() returns null, then it will instantiate a new instance and call setX(newThing). Then it will call setY(..) on the new instance. When it evaluates the next expression ("x.z") it will call getX() again. If it gets null that time, then it will create *another* instance and call setX(newerThing) and then call setZ(..) on that instance.
In short: make sure that if setX(..) is called then getX() will return whatever value was passed to the setter. Or if getX() never returns null, then make sure it returns the same reference every time it is called. A getter that returns two different references on sequential calls would result in the behavior you're seeing. -Ben On Sat, May 1, 2010 at 12:04 PM, rplus <bariskar...@gmail.com> wrote: > > Would you describe what you mean by "faking a property"? > > Problem here is that, if i use one of the user.firstName and user.lastName > textfields in the jsp each single of them bind to the parameter > successfully. But when i try to more than one field, only one them binds > and > the other ones stay null. i check the request parameters i can see that all > of them are there, just not bound. > > as for your advices; I already use the property pattern. Infact, as you can > see that I need to use the getter to perform an update operation. If I were > able to bind these properties, i have the intention of using strict > binding. > For the other ones, I'll consider them after this problem is solved, so > thanks. > > Also, some other things that i noticed are; > for each parameter i passed to the actionBean, updateuser getter invokes > seperately from what i can see from the console outputs. Is that normal? > and if commented out the updateuser = userManager.getCurrent() user line, i > can see that bindings will successful. Would you be able to suggest some > other way to bind the new properties into the old one? > > Thanks anyway for your concern. > > > > Richard23 wrote: > > > > I'm not sure. IMO the problem is that you are "faking" a property - > > thats just a blind shot. Try to set the log level of the stripes > > framework to debug. Then stripes will tell you about binding problems. > > > > Last but not least try to improve the code by: > > - Try to not break the Property Pattern. This means private member > > with a setter and getter. The automatic binding mechanism of stripes > > depends on this convention. > > - Try to use <input type="text" name="updateuser.name" /> instead of > > <input type="text" name="updateuser.name" value="someOtherVariable"/>. > > Stripes automatically invokes the getter for you, so there is no need > > to explicitly set the value. > > - Try to do clean MVC. This meas load the data from your service > > classes and store it in actionBean properties. In your jsp access the > > actionBean properties > > - Try to make use of StrictBinding annotation to avoid security issues > > and annotate all bindable setters with @Validate > > > > Regards, > > Richard > > > > On Fri, Apr 30, 2010 at 10:34 PM, rplus <bariskar...@gmail.com> wrote: > >> > >> > >> > >> Richard23 wrote: > >>> > >>> Wold you be so kind to post the relevant parts of the jsp and the > >>> setUser method? > >>> > >>> Are you using @StrictBinding? > >>> > >>> > >> > >> this is the action bean and there is no strict binding. > >> > >> public Resolution update() { > >> System.out.println(updateuser.getLastName()); > >> System.out.println(updateuser.getFirstName()); > >> System.out.println(updateuser.getName()); > >> userManager.updateUser( updateuser); > >> > >> return new JavaScriptResolution(resolutionObject); > >> } > >> private User updateuser; > >> public User getUpdateuser(){ > >> updateuser = userManager.getCurrent(); > >> return updateuser; > >> } > >> > >> public void setUpdateuser(User user){ > >> this.updateuser = user; > >> } > >> > >> > >> this is jsp : > >> > >> <s:form action="${contextPath}/settings/profile/update" > >> onsubmit='ajaxify({e: event, form: this});'> > >> <input type="text" name="updateuser.firstName" > >> value="${actionBean.currentUser.firstName}" /> > >> <input type="text" name="updateuser.name" > >> value="${actionBean.currentUser.name}" /> > >> <input type="text" name="updateuser.lastName" > >> value="${actionBean.currentUser.lastName}" /> > >> <s:submit name="update">update</s:submit> > >> </s:form> > >> > >> and this is model > >> > >> public class User extends ProfileBase { > >> > >> @Column(name = "first_name", length = 40) > >> private String firstName; > >> @Column(name = "last_name", length = 40) > >> private String lastName; > >> > >> } > >> > >> only one of the firstname or lastname fields bind. userManager is also > an > >> ejb local interface. > >> What can be the problem? > >> > >> > >> -- > >> View this message in context: > >> http://old.nabble.com/Stripes-Binding-Problem-tp28411715p28416439.html > >> Sent from the stripes-users mailing list archive at Nabble.com. > >> > >> > >> > ------------------------------------------------------------------------------ > >> _______________________________________________ > >> Stripes-users mailing list > >> Stripes-users@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/stripes-users > >> > > > > > > > > -- > > Richard Hauswald > > Blog: http://tnfstacc.blogspot.com/ > > LinkedIn: http://www.linkedin.com/in/richardhauswald > > Xing: http://www.xing.com/profile/Richard_Hauswald > > > > > ------------------------------------------------------------------------------ > > _______________________________________________ > > Stripes-users mailing list > > Stripes-users@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/stripes-users > > > > > > -- > View this message in context: > http://old.nabble.com/Stripes-Binding-Problem-tp28411715p28421700.html > Sent from the stripes-users mailing list archive at Nabble.com. > > > > ------------------------------------------------------------------------------ > _______________________________________________ > Stripes-users mailing list > Stripes-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/stripes-users >
------------------------------------------------------------------------------
_______________________________________________ Stripes-users mailing list Stripes-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/stripes-users