1

我正在使用 resteasy-links (2.3.7.Final) 通过 HATEOAS 链接增强我的资源。

当使用 @LinkResource 的约束来限制其基于属性的创建时,BeanELResolver 在传入类型时失败并出现 PropertyNotFoundException。问题是resteasy-links 的 RESTUtils 要么传入实体,要么传入实体ResourceFacade 实体的类型。由于实体的类显然不具有与实体本身相同的属性,因此这注定会失败。

我想要做的是仅在实体没有 endTime 时才显示链接,这对于直接用例非常有效,但是一旦使用 ResourceFacade,只有实体的类型(DTO.class)被传递到EL上下文。 @LinkResource(value = DTO.class, constraint = "${endTime == null}")

我试过了

  1. "${!(this instanceof java.lang.Class) && endTime == null}"
  2. "${this.getClass() == 'DTO' && endTime == null}"
  3. "${!this.toString().contains('class') && endTime == null}"

但是 1. 甚至没有编译,第二个失败,因为 Class 没有 getClass()。3. 有效,但对我来说似乎相当 hacky。

https://docs.jboss.org/resteasy/docs/2.3.7.Final/userguide/html/LinkHeader.html#8.2.8.%20Resource%20facades

有更好的想法吗?

4

0 回答 0