gpt4 book ai didi

java - Spring MVC 模型在 ArrayList 上窒息

转载 作者:行者123 更新时间:2023-12-01 14:48:54 27 4
gpt4 key购买 nike

我正在实现一个通用 Controller ,以便它处理 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 代码都会发生同样的情况,因此不要认为这是继承的一些愚蠢错误。

非常感谢您的帮助。

最佳答案

注释不是继承的,因此LoginController不是 Controller ,您可以从基类继承,但每个子类(每个单独的 Controller )都需要注释..

这听起来也是一个非常糟糕的主意

such that it handles programmatic declarations of js/css files

将 View 和 Controller 逻辑分开 - MVC。在配置文件中声明并映射静态资源。

检查服务器日志(打开日志记录)。

对于基本的异常处理,这听起来像是您需要的,您应该考虑将类似的内容添加到您的基本 Controller 中

 @ExceptionHandler(Exception.class)
public String myExceptionHandler(final Exception e) {
final StringWriter sw = new StringWriter();
final PrintWriter pw = new PrintWriter(sw);
e.printStackTrace(pw);
final String strStackTrace = sw.toString(); // stack trace as a string
logger.error(strStackTrace); // send to logger first
emailService.sendAlertMail(strStackTrace);
return "exception"; // default friendly excpetion message for user
}

关于java - Spring MVC 模型在 ArrayList 上窒息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15088363/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com