我正在使用 Grails。我想从名为“User”的类的数据库中提取信息并简单地显示它。数据存储在 MySql 数据库中。我可以连接到它,我的应用程序也可以。
具有业务逻辑的 Controller “UserController”有一个名为“User”的操作。它看起来像这样:
import gorm.*
class UserController {
static scaffold = true
static defaultAction = "user"
def index() {
...
}
def user() {
try {
def userToDisplay = User.get(1)
return userToDisplay
}
catch (Exception e) {
log.error("Something went wrong! ", e.message)
}
}
}
在我看来,GetUser 应该简单地获取 id 为 1 的用户(该用户确实存在于数据库中)。该用户的内容应显示在 View 中,也称为“用户”。它看起来像这样:
<!DOCTYPE html>
<html>
<head>
<meta name="layout" content="main"/>
<title>User info</title>
</head>
<body>
Last Name: ${User.lastName}<br/>
First Name: ${User.firstName}<br/>
E-mail: ${User.email}<br/><br/>
</body>
</html>
我不断收到一条错误消息,内容如下:
| Error 2014-01-27 13:04:07,089 [http-bio-8080-exec-10] ERROR
errors.GrailsExceptionResolver - NullPointerException occurred when processing request:
[GET] /TaskCheck/user
Cannot get property 'lastName' on null object. Stacktrace follows:
Message: Error processing GroovyPageView: Cannot get property 'lastName' on null object
换句话说,它一直认为应该从数据库中提取的“User”对象始终为空。我想不出任何我错过的代码。
你能告诉我我错过了什么吗?我错过了 UserController 中的一些代码吗?这本应该花费五分钟才能完成,但我花了比这更长的时间。谢谢。
最佳答案
正如评论中所指出的,您没有模型返回到您的 View 中。尝试类似的操作(并查看用户指南)。
def user() {
def model = [:]
try {
model['user'] = User.get(1)
}
catch (Exception e) {
log.error("Something went wrong! ", e.message)
}
render view: 'user', model: model
}
然后在您看来,您可以像这样访问您的模型:
${user.lastName}
关于mysql - Grails - 提取数据并显示它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21389108/