Matt,

I compared everything that I thought was relevant, and it still didn't work. I blew away everything and restarted from the archetype, and it's fine.

I suspect I must have messed something up between running the archetype and starting the tutorial.

Thanks for your patience with this appfuse newbie.

Waldo



Matt Raible wrote:
Have you tried comparing your code to the completed tutorial?

http://appfuse-demos.googlecode.com/files/appfuse-demos-2.0.1.tar.gz

Thanks,

Matt

On 3/9/08, Waldo Rochow <[EMAIL PROTECTED]> wrote:
  
I have added this work-around (read "hack") to get the unit tests to
 work, and to get the page flow behaving properly.

 === CODE from PersonFormController.java ===
    public ModelAndView handleRequest(HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        if(request.getMethod().equalsIgnoreCase("post")){
            return onSubmit(request, response,
 formBackingObject(request), new BindException());
        } else {
            return super.handleRequest(request, response);
        }
    }


 But in doing so, I see that nothing is getting saved to the database.
 There is no log message from the GenericManager, so I added the
 following to my PersonFormController.onSubmit().

 === CODE from PersonFormController.java ===
        if (request.getParameter("delete") != null) {
            personManager.remove(person.getId());
            saveMessage(request, getText("person.deleted", locale));
        } else {
 *            log.debug("The original person is: " + person.toString());*
 *            Person updatedPerson = personManager.save(person);
            log.debug("The updated person is: " + updatedPerson.toString());
 *            String key = (isNew) ? "person.added" : "person.updated";
            saveMessage(request, getText(key, locale));

            if (!isNew) {
                success = "redirect:personform.html?id=" + person.getId();
            }
        }


 It produced the following log even though I changed Matts first name to
 Mathiew (sorry ;-).
 === LOG of transition from: person form -> persons list ===
 [cbeyond] DEBUG [btpool0-1] PersonFormController.onSubmit(59) | entering
 'onSubmit' method...
 [cbeyond] DEBUG [btpool0-1] PersonFormController.onSubmit(71) | The
 original person is:
 [EMAIL PROTECTED],firstName=Matt,lastName=Raible]
 [cbeyond] DEBUG [btpool0-1] PersonFormController.onSubmit(73) | The
 updated person is:
 [EMAIL PROTECTED],firstName=Matt,lastName=Raible]


 I don't know if this is related, but I suspect it is.

 Thanks again,

Waldo


 Waldo Rochow wrote:
 > I'm hoping that someone can help me. I have been running through the
 > spring tutorial with hibernate, and all was going well until the
 > PersonFormController.
 >
 > The behavior that I'm seeing is that when editing a person, I click on
 > the save button and get redirected to the persons list. The changes
 > that have been made are not persisted, and the log doesn't display the
 > "entering 'onSubmit' method..." log message.
 >
 > What bothers me is the following line from the logs since my class
 > doesn't implement that method, I am assuming that one of the parents
 > is trying to handle the request.
 >
 >        PersonFormController.processFormSubmission(266) | No errors ->
 > processing submit
 >
 > I have Googled for hours, and not found anything like this, so I am at
 > my wits end.
 >
 > Some relevant code and log snippets  follow.
 >
 > Thanks in advance,
 > Waldo
 >
 >
 > === CODE from personform.jsp ===
 > ...
 > <form:form commandName="person" method="POST" action=""
 > id="personForm">
 > <form:errors path="*" cssClass="error" element="div"/>
 > <form:hidden path="id"/>
 > <ul>
 >    <li>
 >        <appfuse:label styleClass="desc" key="person.firstName"/>
 >        <form:errors path="firstName" cssClass="fieldError"/>
 >        <form:input path="firstName" id="firstName" cssClass="text
 > medium"/>
 >    </li>
 >
 >    <li>
 >        <appfuse:label styleClass="desc" key="person.lastName"/>
 >        <form:errors path="lastName" cssClass="fieldError"/>
 >        <form:input path="lastName" id="lastName" cssClass="text medium"/>
 >    </li>
 >
 >    <li class="buttonBar bottom">
 >        <input type="submit" class="button" name="save"
 > value="<fmt:message key="button.save"/>"/>
 >        <c:if test="${not empty person.id}">
 >        <input type="submit" class="button" name="delete"
 > 
 >            value="<fmt:message key="button.delete"/>" />
 >        </c:if>
 >        <input type="submit" class="button" name="cancel"
 > value="<fmt:message key="button.cancel"/>"/>
 >    </li>
 > </ul>
 > </form:form>
 > ...
 >
 > === CODE from PersonFormController.java ===
 > public class PersonFormController extends BaseFormController {
 >
 > ...
 >
 >    public ModelAndView onSubmit(HttpServletRequest request,
 >                                 HttpServletResponse response, Object
 > command,
 >                                 BindException errors)
 >    throws Exception {
 >        log.debug("entering 'onSubmit' method...");
 > ...
 >    }
 >
 > ...
 > }
 >
 > === LOG of transition from: persons list -> person form -> persons
 > list ===
 > [cbeyond] DEBUG [btpool0-1] PersonFormController.showNewForm(337) |
 > Displaying new form
 > [cbeyond] DEBUG [btpool0-2]
 > PersonFormController.processFormSubmission(266) | No errors ->
 > processing submit
 > [cbeyond] DEBUG [btpool0-1] PersonController.handleRequest(31) |
 > entering 'handleRequest' method...
 >
 >
 >
 >
 >
 >
 >
 >
 > ---------------------------------------------------------------------
 > 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]


    

---------------------------------------------------------------------
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]

Reply via email to