Summary of Spring MVC Transfer Receiving Parameters

  • 2021-12-09 08:52:50
  • OfStack

Directory 1. Receive request parameter 2 through entity Bean. Receive request parameter 3 through formal parameter of processing method. Receive request parameter 4 through HttpServletRequest. Receive request parameter 5 in URL through @ PathVariable. Receive request parameter 6 through @ RequestParam. Receive request parameter 6 through @ ModelAttribute

Everyone often uses Spring MVC Controller to receive request parameters in development. The main common receiving methods are entity objects and formal parameters, some of which are used for GET requests, some for POST requests, and some for both. The following several common ways to receive parameters in the background are shared under 1. The main methods are as follows:

Entity Bean receives request parameters The formal parameter of the processing method receives the request parameter HttpServletRequest Receive Request Parameters @ PathVariable receives request parameters from URL @ RequestParam Receive Request Parameters @ ModelAttribute Receive Request Parameters

The appropriate receiving mode can be selected according to the actual situation.

1. Receive request parameters through entity Bean


@RequestMapping("/login")
public String login(User user, Model model) {
    if ("admin".equals(user.getName())
            && "123456".equals(user.getPwd())) {
        model.addAttribute("message", " Login Successful ");
        return "main"; //  Login successful, jump to home page 
    } else {
        model.addAttribute("message", " Wrong username or password ");
        return "login";
    }
}

2. Receive the request parameters through the formal parameters of the processing method

Receiving request parameters by processing method parameters means writing form parameters directly into the parameters of the corresponding method of the controller class, that is, the parameter names are exactly the same as the request parameter names. The receive parameter mode is suitable for GET and POST submit requests


@RequestMapping("/login")
public String login(String name, String pwd, Model model) {
    if ("admin".equals(user.getName())
            && "123456".equals(user.getPwd())) {
       
        model.addAttribute("message", " Login Successful ");
        return "main"; //  Login successful, jump to jump to home page 
    } else {
        model.addAttribute("message", " Wrong username or password ");
        return "login";
    }
}

3. Receive request parameters through HttpServletRequest


@RequestMapping("/login")
public String login(HttpServletRequest request, Model model) {
    String name = request.getParameter("name");
    String pwd = request.getParameter("pwd");
   
    if ("admin".equals(name)
            && "123456".equals(pwd)) {
        model.addAttribute("message", " Login Successful ");
        return "main"; //  Login successful, jump to  main.jsp
    } else {
        model.addAttribute("message", " Wrong username or password ");
        return "login";
    }
}

4. Receive request parameters from URL via @ PathVariable

Get the parameters in URL through @ PathVariable, and the sample code is as follows.


@RequestMapping("/login")
public String login(@RequestParam String name, @RequestParam String pwd, Model model) {
   
    if ("admin".equals(name)
            && "123456".equals(pwd)) {
        model.addAttribute("message", " Login Successful ");
        return "main"; //  Login successful, jump to home page 
    } else {
        model.addAttribute("message", " Wrong username or password ");
        return "login";
    }
}

5. Receive request parameters via @ RequestParam

Use the @ RequestParam annotation at the method entry to specify its corresponding request parameter. @ RequestParam has the following three parameters:

value: Parameter name required: Yes, the default is true, indicating that the request must contain the corresponding parameter name. If it does not exist, an exception will be thrown defaultValue: Parameter Default

@RequestMapping("/login")
public String login(@RequestParam String name, @RequestParam String pwd, Model model) {
   
    if ("admin".equals(name)
            && "123456".equals(pwd)) {
        model.addAttribute("message", " Login Successful ");
        return "main"; //  Login successful, jump to home page 
    } else {
        model.addAttribute("message", " Wrong username or password ");
        return "login";
    }
}

6. Receive request parameters via @ ModelAttribute

The @ ModelAttribute annotation is used to encapsulate multiple request parameters into a single entity object to simplify the data binding process and is automatically exposed as model data for use in view page representations. "Receiving Request Parameters through Entity bean" simply encapsulates multiple request parameters into one entity object without exposing them as model data


@RequestMapping("/login")
public String login(@ModelAttribute("user") User user, Model model) {
   
    if ("admin".equals(name)
            && "123456".equals(pwd)) {
       
        model.addAttribute("message", " Login Successful ");
        return "main"; //  Login successful, jump to home page 
    } else {
        model.addAttribute("message", " Wrong username or password ");
        return "login";
    }
}

Related articles: