gpt4 book ai didi

java - 如何获取 :errors tag by using MultiActionController? 形式的错误消息

转载 作者:太空宇宙 更新时间:2023-11-04 08:58:46 24 4
gpt4 key购买 nike

我有一个表格:

<form:form commandName="command" method="post">
<form:errors path="property"/>
// some fields
</form:form>

还有一个 MultiActionController

Command command = new Command();
ServletRequestDataBinder binder = createBinder(request, command);
binder.bind(request);

for (Validator validator: getValidators())
if(validator.supports(command.getClass()))
validator.validate(command, binder.getBindingResult());

if(binder.getBindingResult().hasErrors())
// What to put here in order to show error message in <form:errors path="property"/>

我用过:

return new ModelAndView()
.addObject(binder.getBindingResult().getModel())
.addObject("command", command);

但是它不起作用。当再次显示表单时(失败后),会显示命令属性,但不会显示错误消息。

回答

而不是

return new ModelAndView()
.addObject(binder.getBindingResult().getModel())
.addObject("command", command);

我得打电话

return new ModelAndView()
.addAllObjects(binder.getBindingResult().getModel());

注意addAllObjects。现在一切正常了!

最佳答案

嗯...现在已经太晚了。

binder.getBindingResult()BindingResult 的一个实例这是 Errors 的子类。您的 bind() 产生的错误方法调用和 validator 已添加到 BindingResult实例。

如果其中一些碰巧与 property 相关联您将在 <form:errors> 的输出中看到它们,否则你不会。当然,您可以迭代它们并使用有问题的路径重新添加它们,但这有什么意义呢?

关于java - 如何获取 :errors tag by using MultiActionController? 形式的错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1464318/

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