我使用 @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";
}
答案 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; 找不到