【发布时间】:2015-06-12 18:06:01
【问题描述】:
我正在尝试将验证失败的结果从表单传递到新视图,其中将显示验证失败的字段。我的代码一直显示错误消息而不是validationResult,它确实出现在url参数中。
校验验证的方法如下:
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>
我不确定我是否在两个方法之间正确传递了参数,因为目前我实际上是在两次检查相同的结果,以便在 validateForm.gsp 中呈现它,这似乎不正确。
【问题讨论】:
-
您用于 g:each 标签的这个 validationResult 似乎是一个对象。据我所知,您在 g:each 标签 中使用 in 参数的列表。如果您发布错误消息会很有帮助。