Spring JSP ошибка - PullRequest
       2

Spring JSP ошибка

0 голосов
/ 29 марта 2011

Я пытаюсь сделать простую форму входа в Spring MVC. Я должен сказать, что я новичок в этом. Идея состоит в том, что я пытаюсь проверить форму (используя класс, который реализует интерфейс Validator), и если что-то пойдет не так, выведите ошибки.

Метод проверки:

public void validate(Object target, Errors errors) 
{
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "username", "required.username","Va rugam introduceti un nume de utilizator!");
    ValidationUtils.rejectIfEmptyOrWhitespace(errors, "parola", "required.parola","Va rugam introduceti o parola!");


      User user= (User) target;
      System.out.println(" a:"+user.getUsername()+" b:"+user.getParola());

     User u=userDAO.findByUsername(user.getUsername());


    if(u == null)
    {
        errors.reject("invalid.username","Nume utilizator incorect!");
        //System.out.println("NULL");
    }
    else if(!u.getParola().equals(user.getParola()))
    {
        errors.reject("invalid.parola","Parola incorecta!");


    }
}

Проблема с моей страницей JSP:

<form:form  method="POST" commandName="user" >
<form:errors path="*" cssClass="error" />
    <table>
        <tr>
            <td>Username :</td>
            <td><form:input path="username" /></td>
            <td><form:errors path="username" cssClass="error" /></td>
                        <td><form:errors path="invalid.username" cssClass="error" /></td>
        </tr>
        <tr>
            <td>Password :</td>
            <td><form:password path="parola" /></td>
            <td><form:errors path="parola" cssClass="error" /></td>
        </tr>
        <tr>
            <td colspan="2"><input type="submit" value="Login"></td>
        </tr>
    </table>
</form:form>

Если я пытаюсь запустить это, я получаю ошибку:

org.springframework.beans.NotReadablePropertyException: недопустимое свойство 'invalid' класса бина [pachet.dbo.User]: свойство бина 'invalid' недоступно для чтения или имеет недопустимый метод получения: соответствует ли тип возвращаемого значения получателя получения тип параметра установщика?

Если я удалю строку:

<td><form:errors path="invalid.username" cssClass="error" /></td>

линия

 <form:errors path="*" cssClass="error" />

показывает мне ошибку "invalid.username", так что ошибка существует..Может быть, путь не правильный?

1 Ответ

0 голосов
/ 29 марта 2011

Существует два варианта отклонения:

  • отклонить конкретное поле (ошибка поля)
  • отклонить всю заявку (глобальная ошибка)

Вы путаете их:

  • reject(..) регистрирует глобальную ошибку, rejectValue(..) регистрирует ошибку поля.
  • атрибут path <form:error> должен быть путемчерез поля атрибута модели.У вас явно нет атрибута модели invalid.Ваш user

Способ исправить это использовать:

errors.rejectValue("username", "invalid.username", "....");

и иметь:

<form:error path="username" .. />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...