在我的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的片段
<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")
答案 0 :(得分:1)
在你的代码的错误部分你可以做flash.error =“你的错误信息在这里” 在gsp中做了类似的事情:
<g:if test="${flash.error}">
<div class="alert alert-info">
${flash.message}
</div>
</g:if>
范围内已有一个flash bean。 http://grails.org/doc/latest/ref/Controllers/flash.html