【发布时间】:2014-10-13 16:32:46
【问题描述】:
在我的 grails 项目中,我构建了一个新视图,用户可以在其中执行实体搜索。
我已经创建了 gsp,在控制器中添加了方法 search() 并按照here 的描述自动创建了 gsp
在这个 gsp 中,只有一个输入字段和一个 g:actionSubmit 按钮。如果我用正确的数据填写表格一切正常,但如果数据没有任何对应关系,我会在视图中看到一条错误消息,如弹出窗口的验证错误消息......但我不知道如何显示它,因为我没有在这个 gsp 中使用任何 bean。
另外,出现错误后,我会渲染相同的视图,但render(view: "search", model: [patientInstance: patientInstance]) 的视图是相同的,但路径是/index 而不是/search...
如何显示错误消息?我怎样才能有正确的道路?
这里是搜索()
def search()
{
def patientInstance = new Patient()
if(params.patient_textField == "" || params.patient_textField == " " || params.patient_id =="")
{
//here I would like to show message
//the redirect works correctly
redirect(controller: "patient", action: "search")
}
else {
def patientToShow = Patient.findById(params.patient_id)
redirect(controller: "patient", action: "show", params: [id: patientToShow?.id])
}
}
这是gsp的sn-p
<g:form>
<div id="patientDiv">
<label for="patient">
<g:message code="event.patient.label" default="Patient" />
</label>
<input style=" margin: 0px 10px 10px 0px;" type="text" name="patient_textField" id="patient_textField" value="" placeholder="${g.message(code: 'patient.choose', default: 'Insert Patient...')}" />
<input type="hidden" id="patient_id" name="patient_id" value="" />
<g:actionSubmit class="search" value="${g.message(code: 'default.search.label', default: 'Search Patient')}" action="search" ></g:actionSubmit>
</div>
</g:form>
编辑:
解决了redirect(controller: "patient", action: "search")路径改变渲染的问题
【问题讨论】:
-
我已经阅读了这篇文章,但是对于 renderErrors 我需要使用哪个 bean?