package org.springmodules.db4o.examples.recipemanager.web; import javax.servlet.http.HttpServletRequest; import org.springmodules.db4o.examples.recipemanager.domain.Recipe; import org.springmodules.db4o.examples.recipemanager.persistence.RecipeManager; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.SimpleFormController; import org.springframework.web.servlet.view.RedirectView; public class NewRecipeController extends SimpleFormController{ private static final String RECIPE_ID_ATTRIBUTE = "id"; private RecipeManager recipeManager; public void setRecipeManager(RecipeManager recipeManager) { this.recipeManager = recipeManager; } protected Object formBackingObject(HttpServletRequest request) throws Exception { String idAsString = request.getParameter(RECIPE_ID_ATTRIBUTE); if (idAsString != null) { long id = Long.parseLong(idAsString); return recipeManager.getById(id); } else { return new Recipe(""); } } protected ModelAndView onSubmit(Object command) throws Exception { Recipe r = (Recipe) command; recipeManager.saveRecipe(r); System.out.println("Saving recipe: " + r.getTitle()); RedirectView view = new RedirectView(getSuccessView()); view.addStaticAttribute(RECIPE_ID_ATTRIBUTE, Long.valueOf(recipeManager.getId(r))); System.out.println("Save recipe successfully. id=" + Long.valueOf(recipeManager.getId(r))); System.out.println(recipeManager.getAllRecipes().size() + " recipes saved."); return new ModelAndView(view); } }