所以我试图在Grails中创建一个简单的登录页面,并且我的浏览器上出现了太多的重定向错误。我还没有将登录详细信息连接到数据库,您应该使用“admin”和“password”登录,但无论是否输入正确或不正确的用户名和密码,我都会收到“太多重定向错误”在我的浏览器中。
删除Cookie的建议操作无效!
User.groovy
package loginmysql
class User {
String userName
String password
String fullName
String toString(){
fullName
}
static constraints = {
userName (unique:true)
password(password:true)
fullName()
}
}
UserController.groovy
package loginmysql
class UserController {
def index() { }
def login() {
if (params.username == "admin" && params.password == "password"){
flash.message="login succeded!!!"
session.user="admin" // keep info on who connected
}else{
flash.message="login failed!!!"
}
redirect(action: "login") // return to index page again and display login message
}
def logout() {
session.user = null // no user logged in
redirect(action: "login") // go to index page again
}
}
index.gsp中
<%@ page import="loginmysql.User" %>
<!DOCTYPE html>
<html>
<head>
<meta name="layout" charset="utf-8" content="main"/>
<title></title>
<style type="text/css">
label{
float: left;
width: 65px;
}
</style>
</head>
<body>
<g:if test="${flash.message}"
<div class="message">
${flash.message}
</div>
</g:if>
<g:if test="${session.user}">
<br/>
Logged as : ${session.user} | <g:link action="logout">Logout</g:link>
</g:if>
<g:else>
<g:form action="login" style="padding-left:200px">
<div style="width: 220px">
<label>Username:</label> <input type="text" name="username"/>
<label>Password:</label> <input type="password" name="password"/>
<label> </label> <input type="submit" value="login"/>
</div>
</g:form>
</g:else>
</body>
</html>
错误(在Chrome中)
此页面无效
中央计算机localhost尝试了太多重定向
尝试删除您的Cookie
ERR_TOO_MANY_REDIRECTS
答案 0 :(得分:2)
在login()
行动结束时,无论如何,您都会重定向回login
。
redirect(action: "login")
如果你得到一个成功的&#34;登录时,您应该重定向到其他地方以防止无限重定向循环。
if (params.username == "admin" && params.password == "password") {
flash.message="login succeded!!!"
session.user="admin" // keep info on who connected
redirect(action: "index")
} else {
flash.message="login failed!!!"
}