借助 Ajax 自动保存 JSF 表单: 第 3 部分:保存 JSF 表单中的用户输入
2009-11-10 00:00:00 来源:WEB开发网实现 JSF 侦听程序
ViewRestorer 的 actionListener() 和 valueChangeListener() 方法(如 清单 3 所示)可在 JSF 组件的 actionListener 和 valueChangeListener 属性内使用,可触发对当前视图进行恢复。下一节将演示如何使用这些侦听器方法。
清单 3. 可以恢复事件的 JSF 侦听器package autosave;
...
import javax.faces.event.ActionEvent;
import javax.faces.event.ValueChangeEvent;
public class ViewRestorer implements java.io.Serializable {
...
public void actionListener(ActionEvent e) {
restoreCurrentView();
}
public void valueChangeListener(ValueChangeEvent e) {
restoreCurrentView();
}
...
}
如果存储库包含当前视图和当前用户的数据地图,isCurrentViewRestorable() 方法将返回 true(如 清单 4 所示):
清单 4 . 检验是否可以恢复当前视图的数据package autosave;
...
public class ViewRestorer implements java.io.Serializable {
...
public boolean isCurrentViewRestorable() {
FacesContext ctx = FacesContext.getCurrentInstance();
RepositoryWrapper wrapper = RepositoryWrapper.getManagedBean(ctx);
return wrapper.hasDataMap(ctx);
}
}
清单 5 演示如何将 ViewRestorer 类配置为 faces-config.xml 中的托管 bean,以便使 SupportForm.jsp 页面的 JSF 组件可以使用侦听器方法:
更多精彩
赞助商链接