Grails将对象传递给gsp
我想将数据库用户对象从controller传递到.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 + '
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的最简单手册?