当前位置: 首页 > 知识库问答 >
问题:

Spring MVC,处理@Service层中的错误并将它们发送到jsp

徐焱
2023-03-14
public String saveProduct(Product product) {
    myService.saveProduct(product);
    return "view";
}
public void saveProduct(Product product) {
    // some validation here
    myDao.save(product);
}

我已经看过这里:将错误从服务层传递回视图,但我找不到方便的答案。我真的必须为每个错误创建未经检查的异常吗?如果我有20或30个错误怎么办?

共有1个答案

潘衡
2023-03-14

最后,我创建了一个自定义异常来处理函数错误:

public class ServiceException extends Exception {  
    private List<String> errors = new ArrayList<>();
    (...)
}

我还使用以下方法创建了ValidationErrorsHelper类:

public static void rejectErrors(final BindingResult result, final List<String> errors) {
    if (errors != null) {
        for (final String error : errors) {
            result.reject(error);
        }
    }
}

在我的controller类中,我捕捉到异常:

try {
    this.myService.myFunction(...);
} catch (final ServiceException e) {
    ValidationErrorsHelper.rejectErrors(result, e.getErrors());
}
 类似资料:
  • 我有一个ASP.NET Core1.0Web API应用程序,并试图弄清楚如果我的控制器调用的函数出错,如何将异常消息传递给客户端。 我确实看到了一些使用的文档,但是为了使用它,我必须安装compat shim。在Core1.0中有没有一种新的方法来做这些事情? 这是我一直在尝试的垫片,但它不起作用: 当抛出时,我查看客户端,在内容中找不到我正在发送的消息。

  • 我成功地将一个整数从处理发送到Arduino,但现在我想发送一个由三个整数组成的数组,但我无法让它工作。我想使用Arduino创建一个蜂鸣器反馈,哪个处理将控制激活哪个蜂鸣器。例如,从处理发送的数据应该是[1,0,1],这意味着传感器1和3应该开始工作。蜂鸣器应该能够同时激活,以防[1,1,1]通过。 这是我到目前为止的代码:我试图理解什么数据被发送回Arduino,以了解如何使用它,我不断得到一

  • 我有客户端代码运行在javascript试图发送html内容到自定义处理程序。 客户端代码如下所示: 处理程序代码为: 问题在于,使用Chrome浏览器时,处理程序获取的消息(txt_内容)不完整。我得到的字符串的最大长度是:524288 当我在资源管理器中运行时,我会得到完整的消息(长度=567130)。 我在这里看到了一个类似的问题,但没有得到回答(设置maxAllowedContentLen

  • 问题内容: 我在Win XP上运行Python 3.2。我通过以下方式通过批处理文件运行python脚本: 是我传递来在python脚本中进行一些处理的参数。 我在批处理文件中有两个变量,我也想将它们作为参数发送到python脚本。 我希望能够做这样的事情: 然后通过和在python脚本中检索这些参数 希望对此有所帮助。谢谢。 问题答案: your_script.bat:

  • 请帮帮我,为什么我得到的错误函数不存在? [2018-10-31 12:31:05][42883]错误:函数companytester(bigint,未知,未知,未知)不存在 提示:没有与给定名称和参数类型匹配的函数。您可能需要添加显式类型转换。

  • 我无法确定要为msgID和msgData使用什么属性,所以我现在创建了自己的属性。我看到一篇文章,有人建议构建您自己的json结构,并将其作为有效负载发送,但同样,您将通过哪个属性发送该结构,以便将其正确映射到kafka消息?我对Kafka很陌生,到目前为止,我只尝试了一些基本的测试案例,所以请原谅我的无知,因为我有任何错误的假设。 谢谢您的指导!我使用的是Kafka2.0.1和PublishKa