【问题标题】:Unable to Populate select-option tag using g:select in Groovy无法在 Groovy 中使用 g:select 填充选择选项标签
【发布时间】:2013-04-29 12:15:11
【问题描述】:

我正在尝试运行示例 Collab-Todo 应用程序,如《开始 Groovy 和 Grails》第 123 页(作者:Christopher M. Judd、Joseph Faisal Nusairat 和 James Shingler 出版:Apress and Edition:2008)中的示例。这是我的 User.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')
        }
    }
}

我可以像往常一样创建、读取、更新或删除用户表。这是我的用户视图的示例屏幕截图: 在脚手架视图中,我试图在 user/login.gsp 中使用以下 sn-p 在下拉列表中显示所有用户的列表(根据本书):

<g:select name='userName' from="${User?.list()}"
               optionKey="userName" optionValue="userName"></g:select>

但是我在登录页面中得到的是一个没有填充值的下拉列表: 下面是登录页面的截图:

万一我改变了

from="${User?.list()}"

from="${User.list()}"

我收到 NullPointerException。那么有什么线索吗?

【问题讨论】:

    标签: grails gsp


    【解决方案1】:

    您的视图中似乎找不到 User 类。

    尝试以下方法之一:

    将导入语句添加到您的视图中。

    <%@ page import="collab.todo.User" %>
    

    或在from 属性中使用完全限定名称。

    from="${collab.todo.User.list()}"
    

    最佳做法是从控制器传递用户列表:

    def login = {
        [users: User.list()]
    }
    

    并在您的视图中使用该集合

    from="${users}"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多