在GSP中检查对象是否属于某种类型

vec*_*tor 2 grails groovy

我在GSP视图中有一个域对象列表,并想检查它们中是否有特定类型:

Class Equipment {}
Class Loader extends Equipment {}
Run Code Online (Sandbox Code Playgroud)

......在视野中:

<g:each in="${Equipment.list()}" var="e">
   ... check if e is a Loader....
</g:each>
Run Code Online (Sandbox Code Playgroud)

我正在尝试检查是否有GSP片段来构建导航菜单,并想知道这是否是正确的检查位置.

Bur*_*ith 9

如果你在GSP复合体中制作逻辑,那么你应该考虑创建一个taglib.它也很容易测试 - GSP需要通过功能测试和运行的Web服务器进行测试,但您可以使用集成测试来测试taglib.

  • 这是一个判断调用,但我的首选是做的不仅仅是在GSP中循环.如果我最终做任何逻辑,我将把它移动到taglib.GSP应该非常愚蠢,只需呈现HTML. (2认同)

Ern*_*oso 5

你可以试试:

<g:each in="${Equipment.list()}" var="e">
     <g:if test="${e instanceof your.package.Loader}">Do anything</g:if>
</g:each>
Run Code Online (Sandbox Code Playgroud)