我正在实现一个通用控制器,以便它处理 js/css 文件的编程声明,表示为一个 ArrayList,然后将其添加到模型中并推送到 jsp。
问题是一切正常,直到我将文件路径添加到 additionalJsFilePath 列表中,在该列表中我在浏览器中得到一个空白页面(什么都没有,没有 html 标记)。
相关代码如下:
LoginController.java(扩展 BaseController)
@RequestMapping(value="/login", method = RequestMethod.GET)
public String login(ModelMap model) {
doInitialRenditions();
this.addJsFilePath("../jquery.min.js"); // THIS LINE BREAKS IT
/*
this.addJsFilePath("../jquery.otherfile.js");
this.addJsFilePath("../xxxx.login.js");
*/
doFinalRenditions(model);
model.addAttribute("jsFile", "../jquery.min.js");
return "login";
}
BaseController.java
@Controller
public class BaseController {
public List<String> additionalJsFilePaths;
public List<String> additionalCssFilePaths;
protected void init(){
additionalJsFilePaths= new ArrayList<String>();
additionalCssFilePaths= new ArrayList<String>();
}
protected void doInitialRenditions(){
init();
}
protected void addJsFilePath(String path){
additionalJsFilePaths.add(path);
}
protected void addCssFilePath(String path){
additionalCssFilePaths.add(path);
}
protected void doFinalRenditions(ModelMap model){
model.addAttribute("jsFiles", additionalJsFilePaths);
model.addAttribute("cssFiles", additionalCssFilePaths);
}
}
我什至没有输入任何代码来访问 .jsp 中的jsFiles列表,所以问题出在上述两个文件上。我填充 ArrayList 的事实足以打破它。另外:LoginController 中的所有 BaseController 代码都会发生同样的事情,所以不要认为继承是一些愚蠢的错误。
感激地收到任何帮助。