Отсутствует метод validate () в классе команд - PullRequest
0 голосов
/ 18 февраля 2012

Мне трудно понять, что не так в этом простом коде:

Я сделал команду для смены пароля:

package myapp.commands

import org.springframework.web.context.request.RequestContextHolder as RCH
import myapp.User

class PasswordCommand {
String currentPassword
String password
String passwordConfirm
private u

User getUser() {
    def id = RCH.requestAttributes.session?.user?.id
    if (!u && id) {
        u = User.get(id)
    }
    return u
}

static constraints = {
    currentPassword blank: false, validator: { val, cmd ->
        if (cmd.user && cmd.user.password != val)
            return "user.password.invalid"
    }
...
}

И в соответствующем контроллереЯ использую это действие:

 def doPassword = { PasswordCommand cmd ->
    if (!cmd.hasErrors()) {
        User user = cmd.getUser()
           ...

К сожалению, я получаю ошибку 500 при попытке изменить пароль:

URI: /Myapp/user/doPassword
Class: java.lang.NoSuchMethodError
Message: PasswordCommand.validate()Z

Что происходит?!

1 Ответ

1 голос
/ 18 февраля 2012

Добавьте аннотацию @Validateable:

import grails.validation.Validateable
...

@Validateable
class PasswordCommand {
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...