2009-06-30 32 views
2

我已經編寫了一些代碼,檢查用戶是否以管理員身份登錄或不限制誰可以更改其他用戶的權限,但if標記從不爲真。我已經確認正確的數據是通過回顯出來的,但目前爲止我沒有發現任何數據給了我一個解決方案。Grails g:如果和字符串比較

<g:if test="${session.userPermissions == 'Administrator'}"> 
    <g:select id="permissions" name="permissions" from="${userInstance.constraints.permissions.inList}" value="${userInstance.permissions}" ></g:select> 
</g:if> 
<g:else> 
    ${userInstance.permissions} 
</g:else> 
+1

什麼類型的對象存儲在session.userPermissions?這個名字不知何故暗示它是一個列表而不是單個字符串。 – 2009-06-30 23:49:23

+0

我將它設置爲一個字符串,但也許它將它翻譯成列表。我得檢查一下。 – Noaki 2009-07-01 13:37:45

+0

這是一個列表,我可以使用session.userPermissions [0]訪問字符串。但是,當我分配它時,我正在使用字符串數據類型。 – Noaki 2009-07-01 15:35:26

回答

1

它結束了一個時髦東西─

我用了一個標準,來獲取用戶的登錄信息。該標準返回用戶變量的列表。我正在設置session.userPermissions = user.permissions

在groovy中,您可以訪問每個列表元素的屬性並將它們作爲新列表(如下所示)檢索。這是在我的會話中給我的列表變量。這是一個非常酷的功能,但不是你喜歡在這樣的事故中找到的。

groovy> def demo = [] 
groovy> demo[0] = [a:1, b:2] 
groovy> demo[1] = [a:3, b:4] 
groovy> demo[2] = [a:5, b:6] 
groovy> demo.a 

Result: [1, 3, 5] 
8

嘗試的 「java」 字符串的方式:d

<g:if test="${session.userPermissions.equals('Administrator')}"> 
.... 
</g:if>