欢迎来到天天文库
浏览记录
ID:59254564
大小:33.00 KB
页数:2页
时间:2020-09-08
《jsfbean设置与后台访问方法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、jsfbean设置与后台访问方法再来解释JSF中的MBean,其实MBean就是一个JavaBean,因此它有着和JavaBean相同的要求。最后是MBean的配置,JSF的MBean需要在faces-config文件中做配置,配置方法如下:12 demoofconfig3 userInfo4 user5 2、naged-bean-class>net.moon.beans.UserInfo6 session7 对其中的managed-bean-name,managed-bean-class和managed-bean-scope做一下解释。managed-bean-name是这一MBean的名字,用于其它位置的调用。managed-bean-class是这一MBean的完整路径,用于指明该MBean
2、naged-bean-class>net.moon.beans.UserInfo6 session7
3、的类文件位置。managed-bean-scope是这一MBean的有效范围。 下面再对manage-bean-scope进行一下详细的解释,其有效取值为:application,session,request,none。很容易理解,它们的存活周期分别如下: NameScope Application整个应用 Session整个对话 Request整个请求 None需要时,临时 大家知道,JSF是以JSP为基础的,那么,对于JSP的九大对象来说,这四种scope的信息到底是怎么存储的呢? 经过测试证明,scope为
4、applicatoin的MBean的实例保存在ServletContext中,也就是JSP中的application中,因此我们可以用如下的方法得到某个类的引用:1FacesContextfc=FacesContext.getCurrentInstance();2UserInfoui=(serInfo)fc.getExternalContext().getApplicationMap().get("user"); 对session级别的MBean,我们可以用如下方法得到其引用:1FacesContextfc=FacesContext.getCurr
5、entInstance();2UserInfoub=(UserInfo)fc.getExternalContext().getSessionMap().get("userInfo"); 当然,我们也可以用其它的方法得到session对象后,从session中取出实例。 对request级别的MBean,我们可从request对象中取得,代码如下:1FacesContextfc=FacesContext.getCurrentInstance();2HttpServletRequestrequest=(HttpServletRequest)fc.ge
6、tExternalContext().getRequest();3UserInfoui=(UserInfo)request.getAttribute("user"); 至于none类型的MBean,应该只能得到新的实例了。 当然,JSF提供了另外的访问MBean的方法,我们可以用如下的代码得到MBean的实例:1FacesContextcontext=FacesContext.getCurrentInstance();2ValueBindingbinding=context.getApplication().createValueBinding(
7、"#{user}");3UserBeanuser=(UserBean)binding.getValue(context); 也可用如下的代碼直接得到MBean的一個屬性:1FacesContextcontext=FacesContext.getCurrentInstance();2ValueBindingbinding=context.getApplication().createValueBinding("#{user.name}");3Stringname=(String)binding.getValue(context);上面通过ValueB
8、inding获取值的方法在最新版的jsf中已废弃,新版的jsf提供了另一种访问MBean的方法,是通过ELR
此文档下载收益归作者所有