私は、モデルに追加され、jsp にプッシュされる ArrayList として表現される js/css ファイルのプログラム宣言を処理するように、汎用コントローラーを実装しています。
問題は、ファイルパスを 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 Listにアクセスするためのコードを何も入れていないので、問題は上記の 2 つのファイルにあります。ArrayList に値を設定するという事実だけで、それを壊すのに十分です。また、同じことが LoginController のすべての BaseController コードで発生するため、継承に関するばかげたエラーだとは思わないでください。
感謝して受け取った助け。