Я пытаюсь передать результат проверки валидации из формы в новое представление, где будут отображаться поля, которые не прошли проверку. Мой код продолжает отображать сообщение об ошибке вместо validationResult, которое появляется в параметрах url.Grails извлекает параметры контроллера в g: каждый
Метод, который проверяет проверки заключается в следующем:
def confirmFormToSave() {
def ticket = Ticket.get(params.ticketId)
def ticketId = params.ticketId as long
ValidationResult validationResult = ticketService.validateCurrentTicketForms("", ticketId)
if (!ticketValidationResult.isPassed()) {
log.error "Validation failure, cannot change Ticket status"
redirect(action: 'validateForm', params: [id: params.ticketId, validationResult: validationResult])
return
} else {
params.isGroup = false
redirect(action: 'submitForm', params: params)
}
}
Это переадресовывает на ошибки проверки на следующий метод, который придающей GSP:
def validateForm() {
def ticket = Ticket.get(params.ticketId)
def ticketId = params.ticketId as long
ValidationResult validationResult = ticketService.validateCurrentTicketForms("", ticketId)
def message = 'Sorry, we could not change the ticket state, validation has failed, please fill out all required fields.'
[ticket: ticket, message: message, validationResult: validationResult]
}
Мои тянуть это обратно в GSP заключается в следующем:
<g:each in="${validationResult}" var="resultError">
<li>${resultError}</li>
</g:each>
Я не уверен, передаю ли параметры между t wo, потому что на данный момент я дважды проверяю один и тот же результат, чтобы сделать это в validateForm.gsp, что кажется неправильным.
Это ** ValidationResult ** вы используете для г: каждый тег, кажется, его объект. Насколько я знаю, вы используете списки для ** в ** параметре в ** g: каждый тег **. Было бы полезно, если бы вы отправили сообщение об ошибке. – Sanshila