Can @RequestParam be used on non GET requests?

后端 未结 3 1785
一向
一向 2021-01-14 00:29

Spring documentation says:

Use the @RequestParam annotation to bind request parameters to a method parameter in your controller.

AFA

3条回答
  •  攒了一身酷
    2021-01-14 00:54

    Instead of @RequestParam which binds to a single form value, you can use @ModelAttribute annotation and bind to the whole object. But it should be used in conjunction with form or bind Spring's JSTL.

    Example: - controller that calls JSP-page, it should add objects to a Model:

    @RequestMapping(value="/uploadForm", method=RequestMethod.GET)
    

    public String showUploadForm(Model model) {

    Artist artist = new Artist();
    Track track = new Track();
    
    model.addAttribute("artist", artist);
    model.addAttribute("track", track);
    
    
    return "uploadForm";
    

    }

    • JSP might look something like that:

    Track Title *:

    • Controller that processes form submission;

      @RequestMapping(value="/uploadToServer", method=RequestMethod.POST)

      public String uploadToServer(@ModelAttribute("artist") Artist artist, @ModelAttribute("track") Track track) { .... }

    Here I found a good explanation of using @ModelAttribute annotation - krams915.blogspot.ca

提交回复
热议问题