gpt4 book ai didi

java - Spring-MVC:使用 AbstractCommandController 时如何显示错误?

转载 作者:行者123 更新时间:2023-12-01 15:55:35 25 4
gpt4 key购买 nike

我有 ajax 请求进入我的 Controller ,并且我的验证工作得很好。在 Controller 中,如果出现故障,我会调用故障 jsp 页面。唯一的问题是我不知道如何在 failure.jsp 页面上向用户输出错误。显然我无法访问 spring 的表单标签。在这种情况下你应该做什么?

编辑:我真正想知道的是当我使用 AbstractCommandController 时如何访问 JSP 页面上的绑定(bind)错误。

最佳答案

我过去所做的是使用 HTTP header 将消息发送回 AJAX 请求者(XMLHTTPRequest 对象)。您不会以这种方式获得完整的绑定(bind)和验证支持,但这是传递消息的简单方法。

另一个选项将为您提供 Spring 绑定(bind)和验证的全部功能,如下所示。我假设您通过 AJAX 提交表单。您可以执行标准的 spring 绑定(bind)和验证,并且在出现错误的情况下,发回表单并用问题输入旁边的异常消息替换表单。通过这种方式,您可以充分利用 Spring 绑定(bind)和验证的强大功能,同时获得您想要的 AJAX 优点。这需要您将表单分离到单独的 JSP 页面中,这样您就可以在 AJAX 提交和错误时返回该表单。

回应评论

My issue is just how to access the BindingErrors from a JSP if I'm using an AbstractCommandController. Ajax isn't really that important in the equation. I just didn't want to use a formController because it didn't make sense.

认为您可以简单地在模型中设置一个变量,如下所示:

ModelAndView.addObject(this.getCommandName(), errors)

这将在 AbstractCommandController 中完成

protected abstract ModelAndView handle(
HttpServletRequest request,
HttpServletResponse response,
Object command,
BindException errors)
throws Exception

方法。确保模型属性的名称是您的命令的名称(在 setCommandName 方法中设置)。

这未经测试且仅凭内存。

关于java - Spring-MVC:使用 AbstractCommandController 时如何显示错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5135979/

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