У меня есть страница «start.jsf», которая указывает на действие # {ruler.start}, это действие пересылает запрос на «flow.jsf».JSF 1.1: вопрос о жизненных циклах, почему атрибут рендеринга влияет на действие управляемого компонента ниже?
управляемый bean «линейка» (область запроса) содержит некоторые свойства, один из которых называется «ruler.operation», правильно заполненный в «start.jsf».
На странице «flow.jsf» имеет командную кнопку, указывающую на другое управляемый компонент называется «ObjectList» (сессионный область действия), содержащий объект свойства с именем «objectList.selectedContractor» (а POJO инициализируется в конструкторе, так его дочерние свойства всегда пустые только при первом МБ вызов или неправильный?), его действие - # {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» - пустой.
НО, если я переключить «вынесенный» атрибут из тега связующего # {objectList.selectedContractor.crname}, она работает и корректно заполнить, когда # {objectList.itemInsert} вызывается ... так почему «оказали» влияют на обработку представления?
На самом деле я заметил, что простой тест, выполненный чистыми страницами, работает точно так, как ожидалось, запрашиваемые области управления не влияют на атрибут рендеринга. Кроме того, вышеприведенная форма связана с subview внутри include, я попробую очистить немного кода. –