这是坐下来:
当用户点击文档链接时,我希望通知每个文档查看器组件。
基本上,我们的想法是让文档查看者发布他们监听文档列表组件将触发的某种类型事件(“DocumentSelectedEvent”)的事实。
我可以想到这样做的方法不是JSF特定的,但我想知道JSF事件模型是否可以处理那种事情。
有人有什么想法吗?
答案 0 :(得分:1)
我认为有一种方法可以使用标准的JSF事件模型。
有没有办法可以将组件绑定到辅助bean?这样,当事件发生时,您可以浏览组件列表并通知每个组件。
答案 1 :(得分:1)
您需要将组件与支持bean绑定,并使用ValueChangeListener通知支持bean。监听器方法可以改变与各个UI组件相关联的其他组件的状态。
您是否尝试以“Ajax”方式执行此操作而不明确提交页面?
答案 2 :(得分:0)
ValueChangeEvent
我不知道您是如何实现文档列表的,但如果它是一个下拉列表或任何其他多项列表组件,您可以执行值更改事件并强制提交组件更改。然后在页面代码支持bean中,您可以调用方法让观察者加载您喜欢的任何内容。
在你的jsf中,你只需指定你在辅助bean中编写的值更改处理程序。
/**
* Handle document click value change.
*
* @param valueChangedEvent the value changed event
*/
public void handleDocumentSelect(ValueChangeEvent valueChangedEvent) {
String selectedDocument = valueChangedEvent.getNewValue();
doDocViewer1DisplayMethod(selectedDocument);
doDocViewe2DisplayMethod(selectedDocument);
}
修改您的jsf标记以使用新的值更改事件处理程序并强制提交。
<f:componentTag
attr=xxx
attr=xxx
valueChangeListener="#{pc_BackingBean.handleDocumentSelect}"
onChange=submit();>