我对映射和ModelAndView有问题。所有像“ / login”这样的简单映射都可以,但是我有以下问题:

@RestController
@RequestMapping("/note/{noteId:[\\d]+}")
public class NoteController {

  @RequestMapping(method = RequestMethod.GET)
  public ModelAndView note(@PathVariable String noteId, HttpSession session) {
    // not important code
    ModelAndView modelAndView = new ModelAndView("note");
    return modelAndView;
  }
}


我在这里和路径中有错误:/note/WEB-INF/views/jsp/note.jsp

我想获取WEB-INF/views/jsp/note.jsp,并且在其他ModelAndViews中也具有类似的路径(无前缀)。

我的配置:

@Bean
public InternalResourceViewResolver viewResolver() {
  InternalResourceViewResolver resolver = new InternalResourceViewResolver();
  resolver.setPrefix("WEB-INF/views/jsp/");
  resolver.setSuffix(".jsp");
  return resolver;
}

最佳答案

M. Deinum解决了这个问题。


  用@Controller替换@RestController
  
  @RestController返回所有内容作为响应主体,它自动将您的ModelAndView返回为JSON或XML。 @Controller做适当的视图分辨率。另外,您的前缀也应为/ WEB-INF / views / jsp /。包括前导/。

关于java - Spring RequestMapping错误的 View 路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36374271/

10-12 22:04