【发布时间】:2018-07-16 05:08:59
【问题描述】:
我喜欢 JHipster 项目,非常感谢团队,它真的可以节省大量时间。然而,我确实有点卡在一些事情上。我的最新问题与在 UI 页面上获取自定义错误警报有关,特别是对话框弹出窗口 - 执行创建、删除、自定义操作等。
要复制问题,请创建任何实体或进入 UserResource.delete() 或 createUser() REST 函数并强制抛出异常(将 != 更改为 ==)BadRequestAlertException 异常,如下所示:
if (userDTO.getId() == null) {
throw new BadRequestAlertException("A new user cannot already have an
ID", "userManagement", "idexists");
我期待 user-management-dialog.component.html 上显示的错误,因为它具有声明的标签:
<jhi-alert-error></jhi-alert-error>
但是,我得到的只是服务器日志中的错误:
2018-02-06 15:49:17.025 ERROR 5352 --- [ XNIO-4 task-21]
c.s.hr.oa.web.rest.util.HeaderUtil : Entity processing failed, A new
user cannot already have an ID
2018-02-06 15:49:17.027 WARN 5352 --- [ XNIO-4 task-21]
o.z.p.spring.web.advice.AdviceTrait : Bad Request: A new user cannot
already have an ID
我显然在这里遗漏了一些小东西?真的很感激任何指示。 我正在阅读下面链接的其他帖子,似乎它应该可以工作。我已经尝试了一些建议,但它们是基于旧版本的 Angular 和 JHipster。我正在发布 4.13.3
【问题讨论】:
-
您是否在浏览器控制台中检查了您收到错误的 JSON 响应?
-
是的,400 BadRequest 确实作为响应出现,标题中填充了我的错误消息。我跟踪了代码,它通过
handleBadRequestAlertException()方法执行,该方法将标头设置为错误。@ExceptionHandler(BadRequestAlertException.class) public ResponseEntity<Problem> handleBadRequestAlertException(BadRequestAlertException ex, NativeWebRequest request) { return create(ex, request, HeaderUtil.createFailureAlert(ex.getEntityName(), ex.getErrorKey(), ex.getMessage())); } -
有身体是的。
{ "entityName" : "userManagement", "errorKey" : "idexists", "type" : "http://www.jhipster.tech/problem/problem-with-message", "title" : "A new user cannot already have an ID", "status" : 400, "message" : "error.idexists", "params" : "userManagement" } -
我基本上只是在生成 jhipster 代码时使用它并强制异常以查看它们是否进入 UI 对话框弹出窗口。我还没有做任何不同的事情,我真的想了解使用内置 JHipster 错误机制的首选方式,以便我可以添加一些自定义响应错误。我不禁觉得我忽略了一些小细节/配置或其他东西。如果我们能弄清楚,它可能是 JHipster 常见问题页面的一个好项目。
-
重新标记为 Angular,我相信我使用的 JHipster 版本是 Angular5,抱歉并感谢您的回复,非常感谢。