2013-07-11 67 views
1

所以這裏的交易,我有一個用戶類secUser,static hasMany = [pid:Process],我也使用彈簧安全(不知道它是否相關)。Grails,無法訪問從gsp登錄的用戶實例

我想要做的事:顯示包含的PID爲當前登錄用戶的下拉框,根本不知道如何去,但玩了使這個

<g:if test="${secUserInstance?.pid}"> <g:select optionKey="id" optionValue="pid" name="pid" from="${secUserInstance.pid}" />

後我的問題是:當我將此代碼放入主頁面/中時,它什麼也沒做,但是如果我去/secUser/show/1它顯示屬於用戶的pid列表。似乎無法理解爲什麼它獲得信息,當我到達secUser/show但不在其他地方時...

P.S.我是新來的Grails和Stackoverflow,但我一直堅持這幾天,不知道還有什麼地方。

回答

0

所以你的「/」路徑連線以UrlMappings一些控制器,該控制器應該有static defaultAction = "list"或許,它指向的方法將處理你的「/」的路徑,或者如果沒有設定defaultAction的那麼這將是index(){...}方法。 因此,負責「/」路徑的方法不會將secUserInstance傳遞給您的「methodName」.gsp文件,這就是您無法獲取它的原因。而在/secUser/show/1你訪問secUserControllershow方法有[secUserInstance : secUserInstance]或類似的東西,並將該對象傳遞給gsp文件。 你可以使用過濾器臨客加secUserInstance訪問的每一頁:Add logged in user to context for all GSP pages 或者只是通過在你的方法是用戶對象負責爲「/」

+0

排序的跟進,我得到了一個過濾器的工作,但它仍然沒有按」 t顯示根目錄'/'中的任何內容,但它確實顯示了所有其他控制器中的內容。 我想這是因爲'/'沒有附加控制器... –

+0

我相信你應該檢查你的conf目錄中的UrlMappings.groovy,看看你有沒有附加到'「/」',否則加''/「(控制器:」主「)或其他任何'其他'取決於你想要路由的地方。 –