我是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