【问题标题】:How to enable custom UI error messages on Dialog Popups in JHipster 4.13.2如何在 JHipster 4.13.2 中的对话框弹出窗口上启用自定义 UI 错误消息
【发布时间】: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&lt;Problem&gt; 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,抱歉并感谢您的回复,非常感谢。

标签: angular jhipster


【解决方案1】:

自动升级到 4.14.0 效果很好,只需将这 2 个依赖重新添加到 package.json 中

"web-animations-js": "^2.3.1",
"classlist.js": "^1.1.20150312"

现在所有错误都像对话框弹出窗口中的魅力一样起作用!谢谢!! JHipster 开发人员做得很好!

【讨论】:

  • 太好了,我建议使用精确版本“2.3.1”而不是“^2.3.1”,以避免在某些 dep 引入重大更改时破坏您的构建/应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多