2011-11-30 65 views
2

我在GSP視圖域對象的列表,並想檢查其中是否有特定類型的:檢查,如果目標是某種類型的GSP

Class Equipment {} 
Class Loader extends Equipment {} 

......鑑於:

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

我試圖做檢查,如果GSP片段建立一個導航菜單,並懷疑這甚至合適的地方做的檢查。

+0

我會在控制器裏做這樣的檢查,並呈現不同的部分模板的子類型,自己 –

回答

9

如果你正在做的邏輯在像這樣的GSP綜合體你應該考慮creati改爲使用taglib。它也很容易測試 - GSP需要通過功能測試和運行的Web服務器進行測試,但是您可以使用集成測試來測試taglibs。

+0

喜伯特,不是一個聰明的屁股,但是是什麼讓那麼複雜? – ubiquibacon

+2

這是一個判斷電話,但我的選擇是不要做比GSP循環更多的事情。如果我最終做了任何邏輯,我將把它移動到一個taglib。 GSP應該非常笨,只是呈現HTML。 –

5

你可以試試:

<g:each in="${Equipment.list()}" var="e"> 
    <g:if test="${e instanceof your.package.Loader}">Do anything</g:if> 
</g:each> 
相關問題