我是Grails 2.0框架中的初學者,我正在嘗試遵循本教程http://grails.org/Simple+Avatar+Uploader。我實現了這個代碼,但是我在UserController.groovy的這一行'def user = User.current(session)'中得到了一個錯誤,就像'沒有這樣的屬性:class for user:grailtwitter.PersonController'我假設這行代碼是用戶當前會話。我正在尋找解釋這是如何工作的?Grails中的當前會話
1
A
回答
1
此代碼不完整。控制器的前提是您有一種識別當前登錄用戶的方式。隱含地,行def user = User.current(session)
假定您已在用戶類本身上定義了一個current()
方法,該方法接收會話並假定使用您在其中設置的某個字段來檢索用戶。那會很愚蠢。
執行此操作的常用方法是構建您自己的身份驗證機制。請注意,這是一個天真的做法,你是好得多使用Spring Security Core除非你想讓你的應用程序打開空洞的安全漏洞。但是,對於實踐中,像這樣:
def login = {
//if you're stupid enough to store your passwords in plain text and not sanitize user inputs, you deserve to be hacked
def user = User.findByPassword(params.password)
if(user){
session.user = user
}
}
然後,您可以替換教程違規線( - def user = User.current(session)
- )與
def user = session.user ?: new User(userid:"I'm a little teapot")
你走得更遠之前,你可能想在更進一步之前,先通過這個free eBook on Grails。也強烈推薦Grails in Action。
0
當我遇到過去這是因爲我沒有導入類,Grails/Groovy認爲我試圖訪問一個名爲User的變量而不是類中的方法。
相關問題
- 1. NowJS當前會話
- 2. Vaadin + TabSheet + Grails服務=當前線程沒有會話
- 3. Grails中的無效會話
- 4. 插入到當前會話中的PHP
- 5. Grails中的當前用戶
- 6. 獲取當前會話
- 7. 更新當前會話
- 8. 在grails中,我如何獲得所有當前會話的參考?
- 9. 在grails中維護會話
- 10. 在會話中存儲當前頁面
- 11. 檢查當前會話中ASIHTTPREQUEST
- 12. 在Meteor.js中查找當前會話ID
- 13. 會話不是Grails的
- 14. powershell:改變當前會話的文化
- 15. 返回當前會話的上一頁
- 16. jQuery獲取當前會話的請求
- 17. 與當前會話匹配表的列
- 18. 的Grails:在當前事務
- 19. 休眠會話中的Grails搜索
- 20. Grails中的會話過期消息
- 21. Grails中的Seam會話模擬
- 22. 在會話超時後在當前頁面上獲取會話
- 23. 識別Windows窗體應用程序中的當前會話:會話ID?
- 24. 從當前會話導出功能
- 25. ASP.NET:Response.Redirect()結束當前會話嗎?
- 26. sql server枚舉當前會話變量
- 27. 當前會話不是交互式
- 28. 貝寶IPN如何讓當前會話
- 29. facebook api - 如何過期當前會話?
- 30. 在當前運行新會話
什麼樣的數據'當前(會話)'持有? – Srivi 2012-02-25 22:30:43
User類是什麼包?如果它不在grailtwitter包中,那麼你需要導入。 – proflux 2012-02-25 22:31:46
好..我是進口包。現在我得到了不同的錯誤,如下所示:「沒有方法的簽名:org.grails.twitter.User.current()適用於參數類型:(org.codehaus.groovy.grails.web.servlet.mvc.GrailsHttpSession)values: [會話內容:org.codehaus.groovy.grails.FLASH_SCOPE = org.codehaus ............' – Srivi 2012-02-25 22:47:17