1
我想運行示例Collab-Todo應用程序,如書中開始Groovy和Grails,頁面號123(作者:克里斯托弗M.賈德,約瑟夫費薩爾Nusairat ,James Shingler Publication:Apress and Edition:2008)。這裏是我的User.groovy文件:無法填充選擇選項標籤使用g:在Groovy中選擇
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')
}
}
}
我能夠創建,讀取,更新或刪除用戶表作爲usual.Here是我的用戶視圖的示例屏幕截圖: 在腳手架視圖中,我試圖使用user/login.gsp中的以下代碼段在下拉列表中顯示所有用戶的列表(根據本書):
<g:select name='userName' from="${User?.list()}"
optionKey="userName" optionValue="userName"></g:select>
但是我得到的登錄頁面是一個下拉與填充任何值: 這裏是登錄頁面的截圖:
如果我改變
from="${User?.list()}"
到
from="${User.list()}"
我得到一個NullPointerException。因此,任何線索發生了什麼?