没想到工作这么多年,今天竟然遇到了一个大小写引发的问题,真是汗颜啦。
@RequestMapping(value = "/toList")
public ModelAndView toList(ImportQueryModel importQueryModel, HttpServletRequest request, HttpServletResponse response) {
String batchId = importQueryModel.getBatchId();
String batchResult = null;
if (batchId != null) {
batchResult =cacheUtils.getJson("batchResult" + batchId);
}
ModelAndView modelAndView = new ModelAndView("/productinfo/v31/batchResult");
modelAndView.addObject("importQueryModel", importQueryModel);
modelAndView.addObject("batchResult", batchResult);
modelAndView.addObject("imgBaseUrl", uploadUtils.getImageUrl()); // 图片地址前缀
return modelAndView;
}
其中的batchResult页面在工程中的相对路径如下:
\src\main\webapp\WEB-INF\vm\productInfo\v31\batchResult.vm
细心的同学可能会发现其中有一级目录productInfo是有大写的,问题就出现在这里了,我的开发机器是在windows环境下,测试全流程没有问题,但是部署到生产环境(Linux环境),就死活跳转不到期望的页面。只需要将
ModelAndView modelAndView = new ModelAndView("/productinfo/v31/batchResult");
修改成下面这种方式,问题就得到解决了
ModelAndView modelAndView = new ModelAndView("/productInfo/v31/batchResult");
总结:
为什么以前没有遇到呢,想一想,和自己的编码习惯有关系,jsp,vm目录我一般不会使用大写的目录(现在看来这还是一个好习惯啦)