Grails - 404 Файл не найден - но почему? - PullRequest
1 голос
/ 30 июня 2011

Я начинаю писать простую формуляр для входа.Это код для представления:

 <g:form controller="login" action="checkUsernameAndPassword">
        <input type = "text"name="userNameField" value="userName"/>
        <input type = "password"name="passWordField" value="passWord"/>
        <input type = "submit" name="loginButton" value="Login"/>

 </g:form>

это код для контроллера:

class LoginController {

def index = {

    render(view: "login")
}//endMethod Index

def checkUsernameAndPassword = {

    [userName = params.userName ,passWord = params.passWord];

}//endMethod checkUsernameAndPassword

}

, как вы можете видеть, он ничего не делаеттем не менее, я просто хотел напечатать значения на экране, однако я получаю сообщение 404 (я запускаю файл на локальном хосте)

The requested resource (/projectName/hello/checkUsernameAndPassword) is not available.

Я просто не могу понять, почему.Было бы здорово, если бы кто-нибудь из вас, ребята, дал мне совет.

с уважением, Даниэль

Редактировать (Изменить 1):

    def checkUsernameAndPassword = {

    render(view: "login",model: [userName: params.userName ,passWord: params.passWord])

}//endMethod checkUsernameAndPassword

}

(Изменить 2) // добавили эту строку в представление

<div>Username: ${userName} Passwort: ${passWord}</div>

1 Ответ

3 голосов
/ 30 июня 2011
<g:form controller="hello" action="checkUsernameAndPassword">

означает, что у вас есть HelloController с checkUsernameAndPassword action

Но в вашем примере кода у вас есть LoginController , поэтому, чтобы ваша форма работала, вы должны написать:

 <g:form controller="login" action="checkUsernameAndPassword">
        <input type = "text" name="userNameField" value="userName"/>
        <input type = "password" name="passWordField" value="passWord"/>
        <input type = "submit" name="loginButton" value="Login"/>

 </g:form>

P.S. В мире Grails иногда гораздо лучше использовать теги GSP вместо простого HTML, поскольку он генерирует для вас правильный (в 99,99% случаев) код HTML. Поэтому лучший способ реализовать вашу форму:

 <g:form controller="login" action="checkUsernameAndPassword">
       <g:textField name="userNameField" value="userName" />
        <g:passwordField name="passWordField" value="passWord" />
        <g:submitButton name="loginButton" value="Login" />
 </g:form>

P.S.2 Правильный код LoginController (для формы, описанной ранее)

class LoginController {

def index = {

    render(view: "login")
}//endMethod Index

def checkUsernameAndPassword = {

    [userName: params.userNameField ,passWord: params.passWordField];

}//endMethod checkUsernameAndPassword
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...