2014-10-13 1 views
0

В моем проекте grails я создал новое представление, в котором пользователь может выполнять поиск объектов. Я создал gsp, добавляя метод search() в контроллер и автоматически создавая gsp, как описано here В этом gsp есть только одно поле ввода и кнопка g: actionSubmit. Если я заполняю форму с правильными данными, все работает хорошо, но если данные не имеют никакого соответствия, я бы увидел сообщение об ошибке в представлении, такое как сообщения об ошибках проверки со всплывающими окнами ... но я не знаю, как это показать, потому что Я не использую bean-компонент с этим gsp. Кроме того, после ошибки, я бы сделал один и тот же вид, но с render(view: "search", model: [patientInstance: patientInstance]) каждый раз, но путь/индекс и не/поиск ...сообщение об ошибке grails в независимом представлении gsp

Как я могу показать сообщение об ошибке? Как я могу найти правильный путь?

здесь является поиск()

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> 

EDIT: решена проблема пути меняющегося визуализации с redirect(controller: "patient", action: "search")

+0

http://grails.org/doc/2.0.0/ref/Tags/renderErrors.html –

+0

Я прочитал статью, но какой bean мне нужно использовать для renderErrors? – FrancescoDS

ответ

1

В части ошибок ваш код вы можете сделать flash.error = «Ваше сообщение об ошибке здесь» И в gsp сделайте что-нибудь вроде:

<g:if test="${flash.error}"> 
    <div class="alert alert-info"> 
     ${flash.message} 
    </div> 
    </g:if> 

В сфере применения уже имеется фасоль. http://grails.org/doc/latest/ref/Controllers/flash.html

+0

Он работает, но у меня бы была ошибка, подобная той, что видна в валидации, например, когда поле ввода становится красным, а всплывающее сообщение отображается ... – FrancescoDS

Смежные вопросы