JSF1.1:关于生命周期的问题,为什么呈现属性会影响下面的托管bean操作?

JSF1.1:关于生命周期的问题,为什么呈现属性会影响下面的托管bean操作?,jsf,lifecycle,Jsf,Lifecycle,我有一个页面“start.jsf”,它指向一个动作#{ruler.start},这个动作将请求转发到“flow.jsf” 托管bean“ruler”(请求范围)包含一些属性,其中一个称为“ruler.operation”,正确地填充到“start.jsf”中 页面“flow.jsf”有一个命令按钮,指向另一个名为“objectList”(会话范围)的托管bean,其中包含一个名为“objectList.selectedContractor”的属性对象(初始化到构造函数中的POJO,因此其子属性仅

我有一个页面“start.jsf”,它指向一个动作#{ruler.start},这个动作将请求转发到“flow.jsf”

托管bean“ruler”(请求范围)包含一些属性,其中一个称为“ruler.operation”,正确地填充到“start.jsf”中

页面“flow.jsf”有一个命令按钮,指向另一个名为“objectList”(会话范围)的托管bean,其中包含一个名为“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.itemsert}时,只有“someProp”正确地填充到MB中,而“selectedContractor.crname”结果为空


但是如果我从绑定#{objectList.selectedContractor.crname}的标记中切换“rendered”属性,那么当调用#{objectList.itemInsert}时,它会正常工作并正确填充…所以为什么要“rendered”影响提交的处理?

正如属性所示,它只影响呈现。如果在页面上呈现,则值将在表单提交时发送回Bean。如果正在呈现,并且没有发生这种情况,则说明其他问题。

事实上,我注意到由clean pages进行的简单测试在exac中有效正如预期的那样,请求范围管理的bean不会影响呈现属性。此外,上面的表单链接到include中的子视图,我将尝试清理一些代码。