Spring MVC - 使用@PathVariable并没有找到JSP

时间:2017-08-31 10:27:32

标签: java spring jsp spring-mvc annotations

我使用 @PathVariable 注释为我的控制器提供ID。当我这样做时,它找到映射并在控制器方法中运行代码,但是当它加载JSP时它无法找到它并且我得到下面的错误。

  

HTTP错误404

     

访问问题   /Timesheets/viewtimesheet/WEB-INF/pages/viewtimesheet.jsp。原因是:

     

未找到

在日志中我收到以下错误:

  

严重:PWC6117:文件" C:\ dev \ Projects \ DominoTimesheets \ WebContent \ viewtimesheet \ WEB-INF \ pages \ viewtimesheets.jsp"找不到

如果我取出 @PathVariable ,那么它运行正常并按预期加载页面(但我需要timesheetId对数据库运行)。上面的路径在导致问题的WEB-INF之前有viewtimesheet。它似乎不喜欢/viewtimesheet/{timesheetID}的映射。有人可以对此有所了解吗?

@RequestMapping(value="/viewtimesheet/{timesheetID}", method = RequestMethod.GET)   
public String viewTimesheet(@PathVariable int timesheetID, ModelMap model, 
   final RedirectAttributes redirectAttributes, HttpSession session) {      

   Timesheets timesheetResult = timesheetsService.getTimesheet(timesheetID);

   model.addAttribute("mondayDate", timesheetResult.getDate_WC());      
   model.addAttribute("viewTimesheetModel", timesheetResult);

   return "viewtimesheets";
}

1 个答案:

答案 0 :(得分:0)

我已经解决了这个问题。 dispatcher-servlet 中的 InternalResourceViewResolver bean在前缀值之前需要斜杠。

<property name="prefix" value="/WEB-INF/pages/"/>

这会按预期加载页面,而网址中没有额外的 viewtimesheet

  

严重:PWC6117:档案   &#34; C:\ dev的\项目\ DominoTimesheets \的WebContent \ viewtimesheet \ WEB-INF \页面\ viewtimesheets.jsp&#34;   找不到