gpt4 book ai didi

java - 将 Spring MVC 异常作为验证错误处理

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:09 28 4
gpt4 key购买 nike

我目前有一个 Spring MVC servlet,它处理通过初始表单页面上传的文件。

如果文件缺少某些要求,请求处理程序已经对文件进行了一些验证,但不幸的是,在处理实际发生之前,它无法轻易判断是否满足所有要求。

@RequestMapping(path = "/", method = RequestMethod.POST, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public String submit(@Valid FormData form, BindingResult result, Model model) throws IOException, ParseException
{
if (result.hasErrors())
{
return "index";
}

processFile(form.getFile());

return "success";
}

如果在处理步骤发生异常,我会在一个@ExceptionHandler注解的方法中处理它。但是,此方法需要有第二行来显示 JSP 页面中的错误:

<form:input type="file" name="file" path="file" value=""/>
<form:errors path="file" element="label" class="error" for="file"/>
<c:if test="${not empty error}"><label class="error">${error}</label></c:if>

方法本身看起来像

@ExceptionHandler(Exception.class)
public String databaseError(Model model, Exception e)
{
model.addAttribute("formData", new FormData());
model.addAttribute("error", "File failed to process. Please verify the contents of the file.");
return "index";
}

有没有办法利用 BindingResult 将异常作为验证错误来处理,以避免冗余错误消息模板化?

最佳答案

您可以在请求处理方法中捕获异常,然后在 catch 子句中操作 BindingResult。

关于java - 将 Spring MVC 异常作为验证错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36651656/

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