【发布时间】:2014-01-27 18:48:51
【问题描述】:
我正在使用 Grails。我想从名为“User”的类的数据库中提取信息并简单地显示它。数据存储在 MySql 数据库中。我可以连接到它,我的应用程序也可以。
具有业务逻辑的控制器“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 的用户(它确实存在于数据库中)。该用户的内容应显示在视图中,也称为“用户”。它看起来像这样:
<!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
换句话说,它一直认为应该从数据库中提取的“用户”对象始终为空。我想不出我错过的任何代码。
你能告诉我我错过了什么吗?我错过了 UserController 中的一些代码吗?这本应该花五分钟的时间来完成,但我花了比这更长的时间。谢谢。
【问题讨论】:
-
你有 MVC 的 C 和 V,缺少 M。 :) 看看
render