If you want prepare() to be called, you need to implement Preparable. Matt
On Fri, Apr 11, 2008 at 7:50 AM, Martin Homik <[EMAIL PROTECTED]> wrote: > > Can anyone explain the mechanism of form pre-population. Since I am a newbie, > my experience bases rather on a try-and-error approach. Related to my > request is also my confusion about differences between generated code by > appfuse:gen and the suggested approach in the online tutorial. > > I came across the problem when I implemented a simple Blog application. I > had a POJO Class "Post" which comprises the fields title, body, created, and > modified. The latter two fields are of type Date and they are not nullable. > The Post JSP form shows only the title and body and allows both to edit. But > when I edit an existing post that has a created/modfied timestamp and hit > the save button, I get an exception coming from the database. For some > reason, the timestamps got lost (set to null). Also, I do not understand why > the action tests pass and the Canoo tests fail. > > I figured out that when I make both timestamps available to the JSP form as > hidden information then everything is fine: > <s:hidden name="post.created" value="%{post.created}"/> > <s:hidden name="post.modified" value="%{post.modified}"/> > > I was not sure if this is the best solution so I have set up a new project, > created the Post POJO class and run 'mvn appfuse:gen'. Surprisingly, the > resulting PostAction class had a method 'prepare()' which is invoked when I > open the Post list and form page. Then, I removed the date fields from the > form and observed the changes in the database. In contrast to my original > attempt the timestamps were still there. I assume, that the prepare() method > is somehow in charge of this. > > So, I copied 'prepare()' to my original PostAction class in the other > project which I implemented by following the tutorial. And guess what, the > 'prepare()' method was not invoked. Why? What's the difference between the > code in the online tutorial and the code generated by appfuse:gen? I was > able to preserve the dates only when I added them to the form as hidden > fields. > > Cheers, > Martin > -- > View this message in context: > http://www.nabble.com/Struts2%2C-pre-polution--prepare%28%29-in-Action-class-tp16627847s2369p16627847.html > Sent from the AppFuse - User mailing list archive at Nabble.com. > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]