Package org.springframework.samples.mvc.form

Source Code of org.springframework.samples.mvc.form.FormController

package org.springframework.samples.mvc.form;

import javax.servlet.http.HttpSession;
import javax.validation.Valid;

import org.springframework.samples.mvc.AjaxUtils;
import org.springframework.samples.mvc.flash.FlashMap;
import org.springframework.samples.mvc.flash.FlashMap.Message;
import org.springframework.samples.mvc.flash.FlashMap.MessageType;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Controller
@RequestMapping("/form")
public class FormController {

  @RequestMapping(method=RequestMethod.GET)
  public void form(@RequestHeader(value="X-Requested-With", required=false) String requestedWith, HttpSession session, Model model) {
    FormBean form = (FormBean) session.getAttribute("form");
    model.addAttribute(form != null ? form : new FormBean());
    model.addAttribute("ajaxRequest", AjaxUtils.isAjaxRequest(requestedWith));
  }

  @RequestMapping(method=RequestMethod.POST)
  public String processSubmit(@RequestHeader(value="X-Requested-With", required=false) String requestedWith, @Valid FormBean form, BindingResult result, HttpSession session, Model model) {
    if (result.hasErrors()) {
      model.addAttribute("ajaxRequest", AjaxUtils.isAjaxRequest(requestedWith));
      return null;
    }
    // simply store form bean in the session for demo purposes, typically you would save form bean values to a db
    session.setAttribute("form", form);
    String message = "Form submitted successfully.  Bound " + form;
    // success response handling
    if (AjaxUtils.isAjaxRequest(requestedWith)) {
      // prepare model for rendering success message in this request
      model.addAttribute("message", new Message(MessageType.success, message));
      model.addAttribute("ajaxRequest", true);
      return null;
    } else {
      // store a success message for rendering on the next request after redirect
      FlashMap.setSuccessMessage(message);
      // redirect back to the form to render the success message along with newly bound values
      return "redirect:/form";     
    }
  }
 
}
TOP

Related Classes of org.springframework.samples.mvc.form.FormController

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.