I've added a new method/mapping to one of my servlets:
@RequestMapping(value = "/user/prefs/order", method = RequestMethod.POST)
public void updateUsersPrefs(@RequestBody Map<String, ArrayList> body, HttpServletRequest request) {
...
}
but when I send a request to this url I get a 500 Internal Server Error, with the following error message:
javax.servlet.ServletException: Could not resolve view with name 'user/prefs/order' in servlet with name 'appfinder'
org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1029)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:560)
javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
I cannot for the life of me see why this is being reported. Can anyone help with this? I there is anymore information that I could provide, please let me know.
Thanks!
Spring treats @RequestMapping
methods with void
return type in the following manner:
void
- if the method handles the response itself (by writing the response content directly, declaring an argument of typeServletResponse
/HttpServletResponse
for that purpose) or if the view name is supposed to be implicitly determined through aRequestToViewNameTranslator
(not declaring a response argument in the handler method signature).
Therefore since there is no HttpServletResponse
parameter to this method, Spring assumes that you would like the view name to be determined through a RequestToViewNameTranslator
.
If you do not specify a particular RequestToViewNameTranslator
to use in your context, then the default implementation kicks in which will:
simply transforms the URI of the incoming request into a view name.
If you don't want the URI of the incoming request to be used as the view name, you have a few options:
RequestToViewNameTranslator
with the behavior you would likeHttpServletResponse
parameter to this method if you would like to write to the response directly rather than View resolution take place.String
, View, or
ModelAndView` to be able to specify the view or view name within the method.I had this problem, and the reason was I was using tiles framework and did not mention the view name in tiles-def.xml. After configuring tiles-def.xml had the problem solved.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With