【发布时间】:2012-11-19 23:53:08
【问题描述】:
我有一个场景,我必须在渲染 JSF 页面之前调用另一个 bean 并注册 bean 属性,因为 JSF 页面引用了 bean 属性来渲染响应。
我正在寻找实现这种场景的最佳选择。我试图以伪代码的形式表示所需的场景以便更好地理解。
页面 A --> 按钮“查看详细信息”与 BeanOne.getDetail() 绑定 -- 范围是会话。
BeanOne.getDetail()
处理请求 - 调用后端方法获取详细信息 - if (type == XYZ) 然后调用 BeanTwo.getTypeXYZ() 并根据为 BeanTwo.getTypeXYZ() 定义的导航规则重定向 - else if (type == RST) 然后调用 BeanThree.getTypeRST() 并根据为 BeanThree.getTypeRST() 定义的导航规则进行重定向
BeanTwo.getTypeXYZ()
- 处理请求
- 调用后端方法获取详细信息
- 设置 this.attributeB = 从后端方法返回的值。
- 导航到页面 B
BeanTwo.getTypeRST()
- 处理请求
- 调用后端方法获取详细信息
- 设置 this.attributeC = 从后端方法返回的值。
- 导航到C页
类似于在导航规则中使用 bean 方法名称
<navigation-rule><from-view-id>Page A</from-view-id><navigation-case><from-action>#{beanOne.getDetail}</from-action><from-outcome>xyz</from-outcome><to-view-id>#{beanTwo.getTypeXYZ}</to-view-id></navigation-case><navigation-case><from-action>#{beanOne.getDetail}</from-action><from-outcome>rst</from-outcome><to-view-id>#{beanTwo.getTypeRST}</to-view-id></navigation-case></navigation-rule>
【问题讨论】:
标签: jsf