JSF 初始化 页面数据

应用场景:打开一个页面之后,数据就已经查询出来并且显示在dataTable里面,即初始化页面数据

由于JSF生命周期的问题,构造函数以及get方法里面绝对不要写调用和数据库交互的service,因为每次request请求,backBean 会重新实例化,构造函数都会被调用,而get方法则因为JSF生命周期中的Restore viewProcess 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

}

有ModelBean这么个java类,里面有name这个属性,有get,set方法,在页面上只要把文本控件的值绑定为#{ModelBean.name},页面的值就自动会与java后台同步。例如,打开页面,控件会自动调用get方法去取name的值,提交表单,会自动调用set方法来设置java里面的name值。
不知道你要的是不是这个

猜你喜欢

转载自2277259257.iteye.com/blog/2094036
jsf