2013-12-20 3 views
1

Я просто заканчиваю учебное пособие по JSF2 для Balusc, и у меня возникает проблема с запросом ajax, посланным событием размытия на входных компонентах.JSF2: Ajax Request and Site Navigation

Моя страница настроена с общей боковой панелью, которая содержит h:link для моих разных видов. В одном из моих взглядов, я использую такой код:

<h:panelGrid columns="3"> 
    <h:outputLabel value="title" for="unitTitle"/> 
    <h:inputText id="unitTitle" value="#{unitOverview.unit.title}" label="title"> 
     <f:ajax event="blur" render="unitMessage"/> 
    </h:inputText> 
    <h:message id="unitMessage" for="unitTitle"/> 
</h:panelGrid> 

Так что, когда я навигации на другой сайт, в то время как с помощью одного из компонентов ввода, я получаю http ошибку, из-за ajax request а полный запрос отправляется на сервер в то же время ...

Я новичок в JSF, так что эти варианты приходят в мой разум для решения этой проблемы:

  1. отключить событие размытия
  2. создать еще один компонент боковой панели, с помощью Ajax ссылки - и получать различные ссылки для зрения из областей применения управляемого боба

Я вроде не люблю оба варианты, есть еще один вариант, я не думал ? Как решения «реального мира» решают эту проблему?

заранее спасибо

+0

У вас возникли проблемы с описанной выше проблемой? –

+0

О, вроде забыл об этом сообщении, из-за того, что у меня не было времени узнать больше JSF. На самом деле ваш ответ не разрешил эту тему, у меня все еще есть нежелательное поведение. , например. когда я просто просматриваю поля ввода, сообщение должно отображаться. , например. когда я что-то пишу в поле ввода, переключаюсь на другое поле, снова возвращаюсь к старому, удаляю вход и щелкаю по другой ссылке, у меня все еще есть проблема, которую я имел в начале :( Я хочу точного поведения от размытия, просто без ошибки ajax: / – Patrick

ответ

0

вы правы, посылая ajax- и нормальный запрос HTTP параллельно не является хорошей идеей.

Ну, попробуйте использовать change вместо blur. Он также будет срабатывать при выходе из поля ввода, но должен срабатывать только тогда, когда произошли реальные изменения.

Кроме того, может быть хорошей идеей, чтобы обновить ваш вопрос с помощью xhtml, в котором содержится сводная версия вашей полной проблемы (в том числе <h:form>), чтобы сделать эту проблему более понятной и проверяемой в потенциально заинтересованной среде IDE. :-)

Надеюсь, что это поможет ...