2016-07-14 1 views
4

Есть ли способ, чтобы определить, какие строки (или даже какой файл) вызываетНахождение причины: «Компонент формы должен иметь UIForm в своей родословной».

форме компонент должен иметь UIForm в своей родословной. Предложение: приложить необходимые компоненты в пределах

Предупреждающее сообщение от Primefaces? Я только начал работать над созданным проектом с большим количеством .xhtml-файлов (написанных другими) со всеми типами шаблонов и наследованием, и у меня возникли проблемы с сужением того, что создает файл.

Я пробовал поиск в Интернете без везения, и я не могу найти ответ на SO, который адресован как найти источник ошибки.

Обновление: Это не так просто, как перейти на страницу, указанную в URL-адресе. Например, предупреждение появляется, когда я перехожу на '../foo.xhtml', однако foo.xhtml реализует шаблон и включает в себя несколько других файлов .xhtml (которые, в свою очередь, содержат еще несколько файлов .xhtml). Все файлы несколько значительны (не менее 500 строк).

+1

Какая страница должна быть ясной, не так ли? Так как вы получаете это на странице (или это ведение журнала на сервере?) Пробовали увеличить уровень журнала? – Kukeltje

+0

@Kukeltje Нет, фактически. Я уточню вопрос. – lucasvw

+0

Кроме того, он нигде не выходил из системы, это просто сообщение о гласности, которое отображается при загрузке страницы. – lucasvw

ответ

4

Помещенный отладки точки останова в FormOmittedChecker#check() внутри if блока, где isInNeedOfForm(component) вернулся true, который line 99 от Mojarra 2.2.12.

96     if (isForm(component)) { 
    97      result = VisitResult.REJECT; 
    98     } else if (isInNeedOfForm(component)) { 
* 99      addFormOmittedMessage(finalContext); 
    100     } 

Учитывая страницу с полем ввода без <h:form>,

<h:inputText id="someInputText" /> 

точка останова хит будет выглядеть, как показано ниже в Eclipse:

Как вы видите на скриншоте , вы можете проверить переменную component в стеке переменных и затем проверить ее clientId (или id) свойство. Наконец, вы можете просто найти и сопоставить его сгенерированным выходом HTML и/или исходным кодом JSF.

Я, однако, согласен с тем, что сообщение должно содержать лучшую диагностику. Это было зафиксировано в Mojarra 2.3.0-m04 согласно issue 4026.

+0

Спасибо за ответ! Я попробую это как можно скорее. – lucasvw

+0

Работал как шарм! Хотелось бы, чтобы я мог сделать больше, чем возвысить и принять. Спасибо огромное! – lucasvw

+0

Добро пожаловать. Вы можете подумать о том, чтобы начать щедрость и позволить ей работать всю неделю. – BalusC

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