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();就不会为空了;
分享到:
相关推荐
- **使用EL表达式引用Bean**:通过`#{beanName.propertyName}`语法可以在JSF页面中引用Bean的属性。 - **数据绑定**:可以直接将表单字段与Bean的属性进行绑定,从而简化数据处理流程。 - **事件监听**:可以定义...
MySQL是一个开源的关系型数据库管理系统,广泛应用于Web应用程序中。在大学学生管理系统中,MySQL用于存储和管理学生信息,包括姓名、学号、专业、年级等字段。使用MySQL的主要优势包括: 1. **高性能**:MySQL能...
JSF学生管理系统DEMO是利用JSF技术实现的一个示例项目,旨在帮助开发者了解如何在实际应用中运用JSF进行开发。这个DEMO不仅展示了JSF的基础功能,还可能涵盖了数据管理、用户交互和界面设计等多个方面。 1. **JSF...
在这个例子中,`loginBean`是Managed Bean,它有两个属性(username和password),并有一个login方法处理登录操作。当用户点击登录按钮时,JSF会调用`loginBean.login`方法。 总的来说,JSF提供了一个强大且灵活的...
例如,创建一个名为`StudentBean`的Managed Bean,其中包含学生的属性和对应的setter/getter方法,然后在JSF页面上通过输入框、按钮等组件与Bean交互,实现数据的增删改查。 3. **分页功能** 在处理大量数据时,...
`@ManagedBean`注解标识了这是一个JSF管理的Bean,`@SessionScoped`表示Bean的生命周期与用户会话关联。 ### 四、部署与运行 将`jsf_demo`项目打包成WAR文件,然后将其部署到Servlet容器中。访问`...
在JSF中,可以使用`@ManagedBean`或`@Named`注解来声明一个Bean,然后通过EL(Expression Language)在页面上引用它。例如: ```java import javax.faces.bean.ManagedBean; import javax.faces.bean.SessionScoped...
在"JSF开发-学生信息管理系统"中,我们可以深入理解JSF的核心概念以及如何应用它们来构建一个实用的信息管理应用。 1. **JSF组件库**: JSF的核心是其组件模型,包括输入字段、按钮、表格、图表等。这些组件可以像...
在这个环境中,我们将探讨如何在Eclipse集成开发环境(IDE)中,结合Tomcat 7.0应用服务器和JDK 1.7来创建并运行你的第一个JSF程序。 **1. 安装和配置环境** 首先,你需要确保已安装以下软件: - **Eclipse IDE**: ...
**数据绑定** 是JSF的一个关键特性,它将组件的值与后台bean的属性直接关联。这使得界面的更改能够直接影响到模型,反之亦然。**Managed Beans** 是JSF中的业务逻辑载体,它们负责处理应用的业务规则和数据管理。 *...
3. **Managed Bean**:在JSF中定义一个或多个Managed Bean,这些Bean持有与EJB交互的逻辑,接收和处理用户界面的事件。 4. **JSF视图**:使用JSF组件创建用户界面,如输入表单、数据列表等,与Managed Bean交互以...
在成绩管理系统中,可能会有一个`StudentBean`用于管理学生信息,一个`GradeBean`用于处理成绩数据。这些bean可以通过JSF生命周期中的各种事件(如POST-VALIDATE或UPDATE_MODEL_VALUES)与UI组件交互,实现数据的...
2. JSF Bean的使用:JSF(JavaServer Faces)是一个Java标准,用于构建Web应用程序。JSF Bean是一个特殊的Java类,用于存储和操作Web应用程序的数据。 3. 数据表格的实现:在JSF页面中,使用`t:dataTable`标签来...
**JSF(JavaServer Faces)** 是一个Java平台上的用户界面框架,用于构建和呈现Web应用程序。本教程将深入探讨JSF的核心概念以及如何在JSF应用中传递参数,帮助开发者更好地理解和掌握这一技术。 首先,让我们理解*...
综上所述,"一个简单的jsf登陆"示例可能涵盖了JSF的基本组件使用、数据绑定、验证、bean管理和视图渲染等关键概念。这个简单的例子为初学者提供了了解JSF如何处理用户输入和业务逻辑的起点,并为进一步学习和构建更...
在例子中,可能会有一个Managed Bean类,用于定义属性和方法,这些属性和方法可以被JSF组件绑定和调用。 5. **EL(Expression Language)**:EL是用于访问JavaBean属性和方法的简洁表达式语言。在JSF页面中,EL可以...
例如,如果用户点击了一个按钮,JSF会执行对应的动作方法,该方法通常在管理Bean中定义。 6. **呈现响应(Render Response)**:最后,JSF会生成响应并将其发送回客户端。这包括渲染组件的状态,以生成最终的HTML...
其次,JSF的生命周期管理是另一个关键知识点。当一个JSF页面被请求时,它会经历一系列的阶段:恢复视图、应用请求值、处理验证、更新模型值、调用应用逻辑、以及渲染响应。开发者可以根据这些阶段插入自定义的行为,...
本示例中的"JSF的一个登录系统"是一个基础项目,旨在帮助初学者理解如何使用JSF来实现用户身份验证功能。登录系统是任何Web应用的基础,它通常包括输入用户名和密码的表单以及验证这些凭据的逻辑。 **开发工具...