2013-04-29 2 views
0

У меня есть действие со страницы входа, которая используется для входа в систему. Теперь я хочу показать сообщение в форме на странице входа и затем перенаправить его. Но я понятия не имею, как это сделать. Может ли кто-нибудь помочь мне в этом? Вот моя страница просмотра и управления приведены ниже:Показать сообщение с условием в grails

зрения >>>

<form id="login_form" controller="login" action="loginAction"> 
    <table align="center"> 
    <tr> 
     <td align="right">User Name : </td> 
     <td><g:textField name="username" id="username" required="true"/></td> 
    </tr> 
    <tr> 
     <td align="right">Password : </td> 
     <td> <g:passwordField name="password" id="password" required="true"/></td> 
    </tr> 
    <tr> 
     <td colspan="2" align="right"><input type="submit" value="Log-In"/></td> 
    </tr> 
    </table> 

</form> 

контроллер действия >>>

def loginAction = { 
    def username = params?.username 
    def password = params?.password 
    def user = User.findByUsername(username) 
    def pass = User.findByPassword(password) 
    if(user && pass){ 
     redirect(controller:"home",action:"home") 
    }else{ 
     redirect(controller:"login",action:"login") 
    } 
} 
+2

Будьте осторожны! В вашем коде также есть ошибка. Он будет регистрировать пользователя, который вводит действительное имя пользователя и пароль, даже если пароль принадлежит ** другому ** пользователю! Попробуйте: 'def user = User.findByUsernameAndPassword (имя пользователя, пароль)', а затем 'if (user) // перенаправить на 'home'' – David

+1

@ David большое вам спасибо. Я применил его. Infact Я думал, что моя идея - хорошая идея! –

ответ

1

Вы можете установить meessage в Flash-рамки, как,

flash.message = message(code: "login.failed") 

и после ввода кода перенаправления

redirect(action: "login", params: []) 

на проверку зрения на наличие флэш-сообщения,

<g:if test="${flash.message}"> 
    <div class="message">${flash.message}</div> 
    </g:if> 

Я надеюсь, что я получил свой вопрос прямо, пожалуйста, поправьте меня, если я ошибаюсь, где-то.

+0

да это полезно. Но я просто взял вашу линию вспышки и сторону страницы gsp. Спасибо большое. Я принимаю как идеальный ответ, хотя есть небольшая проблема, которая заключается в том, что когда я нажимаю кнопку обратной страницы в браузере, она содержит сообщение об ошибке в gsp. Можете ли вы мне помочь? –

Смежные вопросы