【发布时间】:2020-06-25 16:09:59
【问题描述】:
我有一个很奇怪的提议。我正在研究“旧版”应用程序。表单提交不是通过 ajax 处理的,而是发送到另一个视图。我需要处理后端发生的错误,但他们真的不希望将任何内容更改为 REST。
我走了这么远。想象一下,表单被发送到前端查看。这是后端 http 控制器。
@RequestMapping(value = "/some/route", method = RequestMethod.POST)
public ModelAndView editProfile(@ModelAttribute("model") @Validated Model model,
BindingResult result,
Principal principal) throws JsonProcessingException {
ModelAndView mav = new ModalAndView();
...
try{
someFunctionCall()
...
} catch(Exception e) {
mav.setViewName("redirect:anotherView?error="+e.getMessage());
return mav;
}
mav.setViewName("redirect:anotherView");
return mav;
}
另一个视图是相同的,但只有我能想象的是检查 url 参数中的错误。由于他们希望将错误文本显示在该视图上,因此我需要传递它。
在 JSP 中我想分配它
var errorMsg = "${error}";
但看起来 JS 的字符串格式有问题
org.springframework.jdbc.UncategorizedSQLException:
Error updating database. Cause: java.sql.SQLException: [Teradata Database] [TeraJDBC 16.20.00.12] [Error 6706] [SQLState HY000] The string contains an untranslatable character.
SQL: {CALL P_someMapper_someFnc(...)}
Cause: java.sql.SQLException: [Teradata Database] [TeraJDBC 16.20.00.12] [Error 6706] [SQLState HY000] The string contains an untranslatable character.
; uncategorized SQLException for SQL []; SQL state [HY000]; error code [6706]; [Teradata Database] [TeraJDBC 16.20.00.12] [Error 6706] [SQLState HY000] The string contains an untranslatable character.; nested exception is java.sql.SQLException: [Teradata Database] [TeraJDBC 16.20.00.12] [Error 6706] [SQLState HY000] The string contains an untranslatable character.);
这是在开发者控制台中并抛出此错误:
Uncaught SyntaxError: Invalid or unexpected token
我知道这是非常糟糕的方法,但我需要处理它。而且我不是真正有经验的 Java 人。但是谁能告诉我什么是最好的解决方案而不使用 REST 并且仍然能够处理来自 $(form).submit 的错误?
提前致谢
更新
我忘记了“anotherView”中的代码以及我如何处理它。
@RequestMapping(value = "anotherView", method = {RequestMethod.GET, RequestMethod.POST})
public ModelAndView listProfiles..., HttpServletRequest req) {
String error = req.getParameter("error");
ModelAndView mav = new ModelAndView();
if (error != null && !error.isEmpty()) {
mav.addObject("error", error);
}
mav.setViewName("whatever");
return mav;
}
查看jsp文件中的js是什么
【问题讨论】:
标签: javascript java spring model-view-controller