JSF 1.1: вопрос о жизненных циклах, почему атрибут рендеринга влияет на действие управляемого компонента ниже? - PullRequest
0 голосов
/ 11 апреля 2009

У меня есть страница «start.jsf», которая указывает на действие # {ruler.start}, это действие перенаправляет запрос в «flow.jsf».

Управляемый компонент "ruler" (в области запроса) содержит некоторые свойства, одно из которых называется "ruler.operation", правильно заполненное в "start.jsf".

На странице «flow.jsf» есть командная кнопка, указывающая на другой управляемый компонент с именем «objectList» (область действия сеанса), содержащий объект свойства с именем «objectList.selectedContractor» (POJO, инициализированный в конструктор, поэтому его дочерние свойства всегда пусты только при первом MB вызове или не так?), его действие - # {objectList.itemInsert}.

Страница формы «flow.jsf» содержит следующие теги:

 <h:form>
 <h:inputText id="crnameNew" value="#{objectList.selectedContractor.crname}" rendered="#{ruler.operation eq ruler.codeOperationNew}" />

 <h:inputText id="someProp" value="#{objectList.someProp}" />
 <h:commandButton styleClass="importedButton" value="insert" action="#{objectList.itemInsert}" />
 </h:form>

Хорошо, когда я отправляю действие # {objectList.itemInsert}, только «someProp» корректно заполняется в МБ, а «selectedContractor.crname» приводит к пустому значению.

НО, если я переключаю атрибут «rendered» из тега, связывающего # {objectList.selectedContractor.crname}, он работает и корректно заполняется при вызове # {objectList.itemInsert} ... так что why "визуализируется "влияет на обработку представления?

1 Ответ

1 голос
/ 11 апреля 2009

Поскольку атрибут предполагает, что это влияет только на рендеринг. Если он отображается на странице, то значение будет отправлено обратно Бину при отправке формы. Если это рендеринг, а это не происходит, значит что-то не так.

...