`
ranyut
  • 浏览: 259810 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

JSF在一个管理Bean中引用另一个管理Bean

    博客分类:
  • JSF
阅读更多

JSF在一个管理Bean中引用另一个管理Bean
如果一个管理Bean中的属性和方法跟另一个管理Bean一样,为了代码的重用而不是再次重写相同的代码,我们会想在这个Bean中直接引用那个管理Bean。
看示例:

----1---JavaCode-----
public class PRequestHisIpBean{
  // 引用另外的管理Bean
  private NetManageBean netmanage ;

  public PRequestHisIpBean(){
    	// 执行引用Bean的方法
	if(netmanage!=null)netmanage.manageNet();
    }
 
    
  public NetManageBean getNetmanage() {
	if(netmanage==null)netmanage=new NetManageBean();
    	return netmanage;
	}
  public void setNetmanage(NetManageBean netmanage) {
		this.netmanage = netmanage;
	}

}





----2---faces-config.xml---------
        <managed-bean>
		<managed-bean-name>netmanage</managed-bean-name>
		<managed-bean-class>
                    com.system.NetManageBean
                </managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>

        <managed-bean>
		<managed-bean-name>RequestIp</managed-bean-name>
		<managed-bean-class>
                   com.report.PRequestHisIpBean
                </managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
		<managed-property>
			<property-name>netmanage</property-name>
			<value>#{netmanage}</value>
		</managed-property>
	</managed-bean>





注意:现在的netmanage 还是空的,如果直接执行引用Bean的方法
if(netmanage!=null)netmanage.manageNet();
netmanage 是 null ;

不过可以在初始化NetManageBean 时执行你
想要的方法。只有在当前构造函数执行以后才执行setNetmanage方法,给netmanage赋值。


执行顺序是:
先到构造函数中,但不执行里面的方法,先初始化普通属性,即给属性赋值,然后才
执行构造函数中的方法。
当构造函数执行完成对象生成之后,才初始化本管理Bean中引用的其它管理Bean类的对象,如开始初始化NetManageBean ,给netmanage 赋值。

要想在本类初始化的时候就得到引用的管理Bean的实例,可以改变执行顺序,将本类的构造函数中的方法移到setNetmanage方法中,并在this.netmanage = netmanage;之后执行。
修改 1 的代码为:
----3---JavaCode-----
public class PRequestHisIpBean{
  // 引用另外的管理Bean
  private NetManageBean netmanage ;

  public PRequestHisIpBean(){
    	
    }
 
    
  public NetManageBean getNetmanage() {
	if(netmanage==null)netmanage=new NetManageBean();
    	return netmanage;
	}
  public void setNetmanage(NetManageBean netmanage) {
	this.netmanage = netmanage;
         // 执行引用Bean的方法
	if(netmanage!=null)netmanage.manageNet();
	}

}


这样if(netmanage!=null)netmanage.manageNet();就不会为空了;
0
0
分享到:
评论

相关推荐

    JSF 资源 managed bean 课件

    - **使用EL表达式引用Bean**:通过`#{beanName.propertyName}`语法可以在JSF页面中引用Bean的属性。 - **数据绑定**:可以直接将表单字段与Bean的属性进行绑定,从而简化数据处理流程。 - **事件监听**:可以定义...

    采用 JSF +后台Bean开发 大学学生管理系统

    MySQL是一个开源的关系型数据库管理系统,广泛应用于Web应用程序中。在大学学生管理系统中,MySQL用于存储和管理学生信息,包括姓名、学号、专业、年级等字段。使用MySQL的主要优势包括: 1. **高性能**:MySQL能...

    jsf学生管理系统demo

    JSF学生管理系统DEMO是利用JSF技术实现的一个示例项目,旨在帮助开发者了解如何在实际应用中运用JSF进行开发。这个DEMO不仅展示了JSF的基础功能,还可能涵盖了数据管理、用户交互和界面设计等多个方面。 1. **JSF...

    jsf第一个例子 jsf架包 jsf实例

    在这个例子中,`loginBean`是Managed Bean,它有两个属性(username和password),并有一个login方法处理登录操作。当用户点击登录按钮时,JSF会调用`loginBean.login`方法。 总的来说,JSF提供了一个强大且灵活的...

    jsf学生信息管理

    例如,创建一个名为`StudentBean`的Managed Bean,其中包含学生的属性和对应的setter/getter方法,然后在JSF页面上通过输入框、按钮等组件与Bean交互,实现数据的增删改查。 3. **分页功能** 在处理大量数据时,...

    JSF第一个应用

    `@ManagedBean`注解标识了这是一个JSF管理的Bean,`@SessionScoped`表示Bean的生命周期与用户会话关联。 ### 四、部署与运行 将`jsf_demo`项目打包成WAR文件,然后将其部署到Servlet容器中。访问`...

    第9章 JSF的托管Bean和国际化课件及源程序

    在JSF中,可以使用`@ManagedBean`或`@Named`注解来声明一个Bean,然后通过EL(Expression Language)在页面上引用它。例如: ```java import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped...

    JSF开发-学生信息管理系统

    在"JSF开发-学生信息管理系统"中,我们可以深入理解JSF的核心概念以及如何应用它们来构建一个实用的信息管理应用。 1. **JSF组件库**: JSF的核心是其组件模型,包括输入字段、按钮、表格、图表等。这些组件可以像...

    JSF的第一个程序

    在这个环境中,我们将探讨如何在Eclipse集成开发环境(IDE)中,结合Tomcat 7.0应用服务器和JDK 1.7来创建并运行你的第一个JSF程序。 **1. 安装和配置环境** 首先,你需要确保已安装以下软件: - **Eclipse IDE**: ...

    JSF中文教程jsf

    **数据绑定** 是JSF的一个关键特性,它将组件的值与后台bean的属性直接关联。这使得界面的更改能够直接影响到模型,反之亦然。**Managed Beans** 是JSF中的业务逻辑载体,它们负责处理应用的业务规则和数据管理。 *...

    ejb jsf开发的员工管理crud源代码

    3. **Managed Bean**:在JSF中定义一个或多个Managed Bean,这些Bean持有与EJB交互的逻辑,接收和处理用户界面的事件。 4. **JSF视图**:使用JSF组件创建用户界面,如输入表单、数据列表等,与Managed Bean交互以...

    学生成绩管理系统_JSF

    在成绩管理系统中,可能会有一个`StudentBean`用于管理学生信息,一个`GradeBean`用于处理成绩数据。这些bean可以通过JSF生命周期中的各种事件(如POST-VALIDATE或UPDATE_MODEL_VALUES)与UI组件交互,实现数据的...

    poi读取并导出excel(jsf bean 页面的实现)

    2. JSF Bean的使用:JSF(JavaServer Faces)是一个Java标准,用于构建Web应用程序。JSF Bean是一个特殊的Java类,用于存储和操作Web应用程序的数据。 3. 数据表格的实现:在JSF页面中,使用`t:dataTable`标签来...

    JSF中文教程+JSF参数传递方式

    **JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建和呈现Web应用程序。本教程将深入探讨JSF的核心概念以及如何在JSF应用中传递参数,帮助开发者更好地理解和掌握这一技术。 首先,让我们理解*...

    一个简单的jsf登陆

    综上所述,"一个简单的jsf登陆"示例可能涵盖了JSF的基本组件使用、数据绑定、验证、bean管理和视图渲染等关键概念。这个简单的例子为初学者提供了了解JSF如何处理用户输入和业务逻辑的起点,并为进一步学习和构建更...

    一个最基本的JSF例子

    在例子中,可能会有一个Managed Bean类,用于定义属性和方法,这些属性和方法可以被JSF组件绑定和调用。 5. **EL(Expression Language)**:EL是用于访问JavaBean属性和方法的简洁表达式语言。在JSF页面中,EL可以...

    JSF的工作方式 JSF架构 JSF模型 JSF事件类型

    例如,如果用户点击了一个按钮,JSF会执行对应的动作方法,该方法通常在管理Bean中定义。 6. **呈现响应(Render Response)**:最后,JSF会生成响应并将其发送回客户端。这包括渲染组件的状态,以生成最终的HTML...

    JSF入门(中文pdf)

    其次,JSF的生命周期管理是另一个关键知识点。当一个JSF页面被请求时,它会经历一系列的阶段:恢复视图、应用请求值、处理验证、更新模型值、调用应用逻辑、以及渲染响应。开发者可以根据这些阶段插入自定义的行为,...

    JSF的一个登录系统,适合初学者

    本示例中的"JSF的一个登录系统"是一个基础项目,旨在帮助初学者理解如何使用JSF来实现用户身份验证功能。登录系统是任何Web应用的基础,它通常包括输入用户名和密码的表单以及验证这些凭据的逻辑。 **开发工具...

Global site tag (gtag.js) - Google Analytics