无法登录到Grails应用程序

无法登录到Grails应用程序,grails,grails-domain-class,grails-controller,Grails,Grails Domain Class,Grails Controller,我不熟悉Grails 我试图通过阅读《从新手到专业人士开始groovy和grails》一书来创建名为collab todo的web应用程序。 我使用动态脚手架功能作为 class UserController { def scaffold = User def login = {} } In_topbar.gsp <a href="/collab-todo/user/login">Login</a> 我的loging.gsp机构 <body>

我不熟悉Grails

我试图通过阅读《从新手到专业人士开始groovy和grails》一书来创建名为collab todo的web应用程序。 我使用动态脚手架功能作为

class UserController {
   def scaffold = User
   def login = {}
}
In_topbar.gsp

<a href="/collab-todo/user/login">Login</a>
我的loging.gsp机构

 <body>
 <div class="body">
 <g:if test="${flash.message}">
 <div class="message">
 ${flash.message}
 </div>
 </g:if>
 <p>
 Welcome to Your ToDo List. Login below
 </p>
 <form action="handleLogin">

 <span class='nameClear'><label for="login">
 Sign In:
 </label>
 </span>
 <g:select name='userName' from="${User.list()}"
 optionKey="userName" optionValue="userName"></g:select>
 <br />
 <div class="buttons">
 <span class="button"><g:actionSubmit value="Login" />
 </span>
 </div>
 </form>
 </div>
 </body>

${flash.message}

欢迎来到您的待办事项列表。在下面登录

登录:

在GSP页面中-渲染器不知道什么是
用户
。您有3种选择:

1) 用户完整类名(带包):

即:

<g:select name='userName' from="${com.collabtodo.package.User.list()}" ... />
在普惠制中:

<g:select name='userName' from="${users}" ... />


看起来像
User==null
为什么它是null,我已经创建了2个用户。如果框架正在自动读取用户模型的值。User.list()应该包含2个值,对吗?选项3应该首先列出,因为从视图中调用数据库很疯狂。这也使得限制返回结果的数量变得更容易,因为您可能不想引入一百万个用户实例。
<%@ page import="com.collabtodo.package.User"%>
...
<g:select name='userName' from="${User.list()}" ... />
import com.collabtodo.package.User
class TheController {
    def index() {
        [users: User.list()]
    }
}
<g:select name='userName' from="${users}" ... />