Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
220 views
in Technique[技术] by (71.8m points)

java - What are valid return types of a Spring MVC controller method?

I have not much experience in Spring MVC and I have the following about what are the valids return types that a controller method can return.

So I know that the user generate an HttpRequest received and handled by the DispatcherServlet that dispatch this request to a specific controller class.

A controller class is something like this:

@Controller
public class AccountController {

    @RequestMapping("/showAccount")
    public String show(@RequestParam("entityId") long id, Model model) {
        ...
    }

    .......................................
    .......................................
    .......................................
}

So I know that each method handle a specific request and that the handled request is specified by the @RequestMapping annotation.

I also know that the method return a String object that is the logical view name (that then is resolved by the view resolver to render the view)

So, at this stage, I think that a method of a controller class returns only String object. But I am not sure of it. Maybe a method like this can return also some different kind of objects?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

There are many return types are available for Handler method which is annotated by @RequestMapping inside the controller, like :

  • ModelAndView (Class)

  • Model (Interface)

  • Map
  • String
  • void
  • View
  • HttpEntity<?> or ResponseEntity<?>
  • HttpHeaders

and much more.....See Docs

Every return type have its specific use for example: If you are using String then it means return View Name and this view name will resolved by ViewResolver. If you don't want to return any view name mention return type as void. If you want to set view name as well as want to send some data to view use ModelAndView as a return type.

Please go through the documentation you will also get to know what kind of method argument you can pass in the handler method.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...