Grails 无法在Groovy中使用g:select填充select选项标记
我正在尝试运行示例Collab Todo应用程序,如《Groovy和Grails入门》一书第123页所述(作者:Christopher M.Judd、Joseph Faisal Nusairat和James Shingler Publication:Apress and Edition:2008)。这是我的User.groovy文件:Grails 无法在Groovy中使用g:select填充select选项标记,grails,gsp,Grails,Gsp,我正在尝试运行示例Collab Todo应用程序,如《Groovy和Grails入门》一书第123页所述(作者:Christopher M.Judd、Joseph Faisal Nusairat和James Shingler Publication:Apress and Edition:2008)。这是我的User.groovy文件: package collab.todo class User { String userName String firstName S
package collab.todo
class User {
String userName
String firstName
String lastName
static hasMany = [todos: Todo, categories: Category]
static constraints = {
userName(blank:false,unique:true)
firstName(blank:false)
lastName(blank:false)
}
String toString () {
"$lastName, $firstName"
}
}
UserController.groovy如下所示:
package collab.todo
class UserController {
def scaffold = User
def login = {
}
def handleLogin = {
def user = User.findByUserName(params.userName)
if (!user) {
flash.message = "User not found for userName: ${params.userName}"
redirect(action:'login')
}
session.user = user
redirect(controller:'todo')
}
def logout = {
if(session.user) {
session.user = null
redirect(action:'login')
}
}
}
我可以像往常一样创建、读取、更新或删除用户表。以下是我的用户视图的示例屏幕截图:
在scaffolding视图中,我试图使用user/login.gsp中的以下代码片段在下拉列表中显示所有用户的列表(如本书所示):
<g:select name='userName' from="${User?.list()}"
optionKey="userName" optionValue="userName"></g:select>
到
我得到一个NullPointerException。有什么线索吗?从您的视图中似乎找不到
用户
类
<%@ page import="collab.todo.User" %>
请尝试以下操作之一:
将导入语句添加到视图中
<%@ page import="collab.todo.User" %>
最佳做法是从控制器传递用户列表:
def login = {
[users: User.list()]
}
并在视图中使用集合
from="${users}"
def login = {
[users: User.list()]
}
from="${users}"