2009-04-11 2 views
0

У меня есть страница «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} вызывается ... так почему «оказали» влияют на обработку представления?

ответ

1

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

+0

На самом деле я заметил, что простой тест, выполненный чистыми страницами, работает точно так, как ожидалось, запрашиваемые области управления не влияют на атрибут рендеринга. Кроме того, вышеприведенная форма связана с subview внутри include, я попробую очистить немного кода. –

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