我有一个JSF页面,其中有div
作为弹出窗口。
当用户点击某个button
或link
时,系统会显示此弹出式窗口,直到隐藏它为止。
我想有另一个JSF页面通过AJAX调用为这个div提供内容。 我依稀记得使用Struts Action和JSP片段来做这件事。
是否可以在JSF 2.0中执行此操作?
其他详细信息:
我的方案如下:
dataTable
标记以及EmployeeInfo
类作为支持bean,将Collection
EmployeeBean
显示为员工的详细信息。 }秒。在此页面上,我有radio
按钮作为dataTable
中的第一列。此页面隐藏了div
。radio
按钮打开并单击某个按钮时,通过AJAX
调用我们需要点击支持bean以获取已经EmployeeBean
的详细信息如上所选,并根据此div
来电填充AJAX
。我不希望在第一页上获得完整提交并获取第二页的原因是,因为我想保存在第一页上所做的任何更改的状态。
答案 0 :(得分:1)
使用标签,您可以非常轻松地显示或隐藏内容。这是快速输入的粗略代码,但是在你的bean中,想象你有以下内容:
public class MyBean {
public boolean renderHidden = false;
public void toggleHidden(AjaxBehaviorEvent event) {
renderHidden = !renderHidden;
}
}
然后在你的JSF页面中,你有一个链接显示隐藏你的弹出窗口作为一个ui:fragment:
<h:commandLink value="Click Me!">
<f:ajax event="click" listener="#{myBean.toggleHidden}" render="hiddenarea" />
</h:commandLink>
<ui:fragment id="hiddenarea" rendered="#{myBean.renderHidden}">
<div><!-- Content to show/hide here --></div>
</ui:fragment>
ui:fragment可以很容易地存在于你通过ui包含的另一个JSF页面中:include如果你需要它。重要的一点是f:ajax take是调用AJAX的函数(在这种情况下是一个click事件)并更新指定的元素(hiddenarea)。