JSF пропускает фазы - как отлаживать это?
Вопрос
Я отладку зарубежного заявления JSF. Проблема в том, что я отправляю форму, но значения не переносятся.
С помощью фазового слушателя я вижу, что жизненный цикл не работает полностью, так сказать, что он пропускает фазу 2 -5: после того, как фаза представления восстановления напрямую называется фаза рендеринга. Я скучаю по применению ценностей, проверку, обновление моделей действий и так далее.
Итак, это может быть проблемой с куриным и яйцем: 1. Ответственные фазы не вызываются, поэтому новый ввод формы не может быть перенесен. 2. Система не распознает любой новый вход и, следовательно, непосредственно отображает после восстановления вида.
Я проверил, что нет вызова ответного вызова () ODER REANDERPERSPONSESPONSE ().
Я застрял как-то. Любая идея, чтобы подтвердить одну из двух гипотезы? Или как отладить это в целом? У кого-нибудь есть похожая проблема?
Обновлять
У меня есть подозрение, что JSF не знает о Запрос обратной связи и обрабатывает это как Первоначальный вид. Отказ Это объяснило бы, что я пропускаю только этап 1 и 6.
Как я могу проверить, если JSF признает это как неинтересный запрос?
Как я могу проверить, если есть подходящие дерево в токе facesContext
.
Решение 2
Нашел решение! Извините, но это было очень конкретно приложению, я думаю: пользовательский Statemanager для JSF не был использован с JSF 1.2. Это вызвало эту странную ошибку. Получил статуногеру, и все работало нормально. Это горький и стоил много времени :-(
Спасибо за вашу помощь в любом случае :-)
Другие советы
Я цитирую от ответа, который я опубликовал до:
Всякий раз, когда Ан
UICommand
Компонент не включает связанное действие, проверьте следующее:
UICommand
Компоненты должны быть размещены внутриUIForm
компонент (например,h:form
).- Вы не можете гнездо несколько
UIForm
Компоненты друг друга (следите за включенными файлами!).- Ошибка проверки / преобразования не должно быть произошла (используйте
h:messages
чтобы получить их все).- Если
UICommand
Компоненты размещаются внутриUIData
компонент, убедитесь, что точно так жеDataModel
(объект заUIData
С.value
атрибут) сохраняется.- То
rendered
а такжеdisabled
атрибуты компонента и всех родительских компонентов не должны оцениватьfalse
Во время применения ценностей запроса фаза.- Убедитесь, что нет
PhaseListener
или любогоEventListener
В цепочке запроса-ответного отклика изменили жизненный цикл JSF, чтобы пропустить фазу действий вызова.- Убедитесь, что нет
Filter
илиServlet
в том же запросе-ответной цепочке заблокировал запрос наFacesServlet
как-то.
Поскольку в вашем конкретном случае этапы 2-5 были пропущены и что вы уверены (?) Что FacesContext#renderResponse()
Не называются, причины 3, 6 и 7 могут быть поцарапаны из списка. Причины 4 и 5 могут также поцарапаться, в зависимости от того, как вы отлаживали фазы JSF. Расследовать другие причины. Мои центы на причину 2. Проверьте, не видите ли вы <form><form></form></form>
В сгенерированном источнике HTML и отставке это в источнике JSF.