Eric,
Looks like you just need to change
<s:hidden name="user.id" />
to
<s:hidden name="user" />
What is going on right now is your form contains a field user.id=X so
Stripes is creating a new User object for you and filling in the id
property. What you want to do is pass user=X so the TypeConverter kicks
in and pulls the User from the DB.
Aaron
Eric Palmitesta wrote:
> I've got the pragprog stripes book, and have started creating a webapp
> with stripes. I'm confused about something though.
>
> Say I've got a simple model object like:
>
> public class User {
> long id;
> String email;
> String password;
> /* getters, setters, hashCode, equals, toString, etc */
> }
>
> And a UserForm actionbean:
>
> public class UserForm extends BaseActionBean {
> public User user;
> /* standard getter/setter for the user field */
>
> @DefaultHandler
> public Resolution form() {
> return new ForwardResolution("path/to/user_form.jsp");
> }
>
> public void save() {
> User user = getUser();
> dao.save(user);
> return new RedirectResolution(UserList.class);
> }
> }
>
> And a user_form,jsp page:
>
> <s:form beanclass="some.action.UserForm">
> <div><s:hidden name="user.id" /></div>
> <table class="form">
> <tr>
> <td>email</td>
> <td><s:text name="user.email" /></td>
> </tr>
> <tr>
> <td> </td>
> <td>
> <s:submit name="save" value="save" />
> </td>
> </tr>
> </table>
> </s:form>
>
> And a standard, id-based TypeConverter and Formatter for the User class.
>
> Whew, ok, that's the setup. Notice that in user_form.jsp, I DON'T
> have a <s:text name="user.password" /> field. I don't want one, nor
> do I want to put the password in a <s:hidden name="user.password" />
> field. Another use case, say there's an object with 25 fields, and I
> specifically want to modify 3 of them; I don't want to write out 22
> hidden fields. When I load the user_form.jsp with ?user=29, the email
> address textfield and the hidden field are filled in properly, thanks
> to the typeconverter. When I submit, the User user = getUser(); line
> in the save() event return a user with a null password field (which
> then NPE's the dao attempting to save the object, which is another
> issue). I want that password field to be whatever is currently in the
> DB, and simply overwrite the fields that are posted from the form.
>
> So how do I do this? Or is this not the Right Way to be doing things
> (I don't want to use Stripersist yet)?
>
> Cheers,
>
> Eric
>
> ------------------------------------------------------------------------------
> _______________________________________________
> Stripes-users mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/stripes-users
>
>
------------------------------------------------------------------------------
_______________________________________________
Stripes-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/stripes-users