应用场景:打开一个页面之后,数据就已经查询出来并且显示在dataTable里面,即初始化页面数据
由于JSF生命周期的问题,构造函数以及get方法里面绝对不要写调用和数据库交互的service,因为每次request请求,backBean 会重新实例化,构造函数都会被调用,而get方法则因为JSF生命周期中的Restore view,Process validations,Invoke applications会调用get方法,所以get方法最好是简单的返回属性值就好。
那么要实现页面初始化的话,具体有两个方法。
第一个:从前台页面调用后台方法。前台触发JS事件,然后通过ajax来调用后台的服务,比如说在body的onload方法里面就可以调用ajax取后台数据,或者创建一个隐藏button,onload里面调用button.click()方法,button 的actoinListener就去处理要处理的数据。
第二个:使用注解postConstruct.在postconstruct方法里面调用(FaceContext.getCurrentInstance.isPostBack())的方法来做处理,具体代码如下:
if(!FaceContext.getCurrentInstance.isPostBack())
{
// get your data
}