Обновление пользовательского интерфейса: определенное содержимое формы из мастер-шаблона (JSF и Primefaces) - PullRequest
1 голос
/ 13 февраля 2012

У меня небольшие проблемы с веб-приложением, по сути, я получаю предупреждение:

ИНФОРМАЦИЯ: Не удается найти компонент с идентификатором "formName" в представлении.

Я знаю, почему это происходит, но мне просто нужно определить, является ли их решение лучше или лучше.

По сути, у меня есть мастер-файл шаблона, который содержит несколько <p:dialog> компонентов, которые имеют различные возможности CRUD. Когда пользователь взаимодействует с этими компонентами, я использую встроенную функцию «обновление» простых лиц, чтобы ajaxical обновить различные формы / компоненты на страницах <ui:defined>. Однако из-за компоновки веб-приложения JSF (т. Е. Главного шаблона и веб-страниц, определенных пользовательским интерфейсом) и того факта, что я определил эти компоненты в основном файле шаблона, это означает, что обновляемые формы / компоненты необязательно в текущем виде и выбрасывая предупреждение выше.

Например:

Если бы у меня был мастер-файл шаблона: master.xhtml с компонентом <<code>p:dialog id="componentA" />. А затем у меня был page1.xhtml с <h:form id=page1Form/>, и аналогично у меня есть page2.xhtml с <h:form id=page2Form/>, который содержал информацию, предоставляемую компонентом поддержки сессий, что было бы лучшим способом обеспечить обновление этих форм, если операция CRUD происходит с использованием компонента A? В данный момент я просто использую <<code>p:dialog id="componentA" update="page1Form, page2Form" />, но поскольку на странице есть только страница 1 или страница 2, Tomcat выплевывает вышеприведенное сообщение. Таким образом, возможно ли динамически указывать формы / компоненты для обновления в зависимости от страницы, на которой я сейчас работаю, или мне нужно указывать componentA на каждой странице <ui:define> (что будет большим количеством повторяющихся html / кода и не особо управляемым) или Есть ли способ обновить все формы / компоненты в текущем представлении? Или то, что я делаю правильно, и я должен просто отключить режим разработки в моем web.xml, чтобы прекратить сообщения?

Приветствия

Союзник

1 Ответ

4 голосов
/ 15 февраля 2012

Просто чтобы подтвердить, если кто-нибудь наткнется на эту тему.Мне удалось решить вышеуказанную проблему с помощью значения <ui:param name="paramName" value:"a value"/>.

По сути, в своем файле основного шаблона укажите свой компонент так, как вы бы это сделали, то есть

<p:commandButton value="Submit" action="#{someBean.doSomeStuff()}"
update="#{paramName}" />

Затем на странице <ui:composition>Вы просто указываете имя параметра и его значение:

<ui:param name="paramName" value="someForm someOtherForm"/>

jobs a goodun!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...