Grails将对象传递给gsp

Grails将对象传递给gsp,grails,gsp,Grails,Gsp,我想将数据库用户对象从controller传递到.gsp页面,以便在视图中使用它的属性。以下是控制器代码: def login(String username, String password){ def userList = getUserListFromDatabase(); User usr = new User(username: username, password: password); println usr.username + '

我想将数据库用户对象从controller传递到.gsp页面,以便在视图中使用它的属性。以下是控制器代码:

def login(String username, String password){
        def userList = getUserListFromDatabase();
        User usr = new User(username: username, password: password);
        println usr.username + '   ' + usr.password;
        username = params?.username;
        password = params?.password;
        println userList.size();
        for(User u : userList){
            println 'username: ' + u.username + ' password: ' + u.password;

            if(u.password.equals(password) && u.username==username){
                User user = u;
                flash.user = u;
                render (view: 'login.gsp');
                //debug
                println 'user.username: ' + user.username;
                return;
            }

        }
        render 'login failed';
    }
这就是我想在视图中显示它的方式:

</head>
    <g:set var="now" value="${new Date()}"/>
    <g:set var="user"/>
<body>
        Login successful!<br/>
        User: ${user?.username}<br/>

</body>

登录成功
用户:${User?.username}

将对象及其所有属性传递给视图的正确方法是什么?我无法理解。

我真的想在这里重构您的逻辑。它获取所有用户数据并循环查找正确的用户。如果你的用户表很大,你的登录系统会慢下来,因为它会在每个用户上循环

def login(String username, String password){
        // def userList = getUserListFromDatabase();
        User usr = User.findByUsernameAndPassword(params.username, params.password)
        //println usr.username + '   ' + usr.password;
        //username = params?.username;
        //password = params?.password;
        //println userList.size();
        //for(User u : userList){
            println 'username: ' + u.username + ' password: ' + u.password;

            //if(u.password.equals(password) && u.username==username){
            if(usr){
                //User user = u;
                flash.user = usr;
                render (view: 'login.gsp', model:[user:usr]);  // pass the user to view
                //debug
                println 'user.username: ' + user.username;
                return;
            }

        //}
        render 'login failed';
    }

在render
render(视图:'login.gsp',model:[user:user])
中将用户添加到模型中,无需在视图中执行
,您是否尝试过阅读Grails的最简单手册?