java开发,大小写的坑,你可曾遇到?

时间:2021-11-21 00:46:47

没想到工作这么多年,今天竟然遇到了一个大小写引发的问题,真是汗颜啦。

@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目录我一般不会使用大写的目录(现在看来这还是一个好习惯啦)