`
zhouxing
  • 浏览: 208502 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

jsf-Managed Beans-Beans 的組態與設定

    博客分类:
  • JSF
阅读更多
JSF預設會讀取faces-config.xml中關於Bean的定義,如果想要自行設置定義檔的名稱,我們是在web.xml中提供javax.faces.CONFIG_FILES參數,例如:
 
<web-app>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/beans.xml</param-value>
</context-param>

...
</web-app>

 

定義檔可以有多個,中間以 "," 區隔,例如:
 
/WEB-INF/navigation.xml,/WEB-INF/beans.xml

 

一個Bean最基本要定義Bean的名稱、類別與存活範圍,例如:
 
....
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
....

 

如果要在其它類別中取得Bean物件,則可以先取得javax.faces.context.FacesContext,它代表了JSF目前的執行環境物件,接著嘗試取得javax.faces.el.ValueBinding物件,從中取得指定的Bean物件,例如:
 
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding =
context.getApplication().createValueBinding("#{user}");
UserBean user = (UserBean) binding.getValue(context);

 

如果只是要嘗試取得Bean的某個屬性,則可以如下:
 
FacesContext context = FacesContext.getCurrentInstance();
ValueBinding binding =
context.getApplication().createValueBinding(
"#{user.name}");
String name = (String) binding.getValue(context);

 

如果有必要在啟始Bean時,自動設置屬性的初始值,則可以如下設定:
 
....
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>name</property-name>
<value>caterpillar</value>
</managed-property>
<managed-property>
<property-name>password</property-name>
<value>123456</value>
</managed-property>
</managed-bean>
....

 

如果要設定屬性為 null 值,則可以使用<null-value/>標籤,例如:
 
....
<managed-property>
<property-name>name</property-name>
<null-value/>
</managed-property>
<managed-property>
<property-name>password</property-name>
<null-value/>
</managed-property>
....

 

當然,您的屬性不一定是字串值,也許會是int、float、boolean等等型態,您可以設定<value> 值時指定這些值的字串名稱,JSF會嘗試進行轉換,例如設定為true時,會嘗試使用Boolean.valueOf()方法轉換為boolean的 true,以下是一些可能進行的轉換:

 

型態 轉換
short、int、long、float、double、byte,或相應的Wrapper類別 嘗試使用Wrapper的valueOf()進行轉換,如果沒有設置,則設為 0
boolean 或 Boolean 嘗試使用Boolean.valueOf()進行轉換,如果沒有設置,則設為 false
char 或 Character 取設置的第一個字元,如果沒有設置,則設為0
String 或 Object 即設定的字串值,如果沒有設定,則為空字串new String("")

 

您也可以將其它產生的Bean設定給另一個Bean的屬性,例如:
 
....
<managed-bean>
<managed-bean-name>user</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.UserBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>

<managed-bean>
<managed-bean-name>other</managed-bean-name>
<managed-bean-class>
onlyfun.caterpillar.OtherBean
</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>user</property-name>
<value>#{user}</value>
</managed-property>
</managed-bean>
....

 

在上面的設定中,在OtherBean中的user屬性,接受一個UserBean型態的物件,我們設定為前一個名稱為user的UserBean物件。
分享到:
评论

相关推荐

    jsf-api-2.0.3.jar.zip_jsf api_jsf jar包_jsf-api-2.0.3.jar_jsf-api

    在部署包含JSF功能的Web应用到Tomcat时,确保所有必要的库,如`jsf-api.jar`(通常与`jsf-impl.jar`一起使用,提供JSF实现),被正确地添加到Tomcat的类路径(ClassPath)中是至关重要的。如果缺失这些库,应用程序...

    jsf-api.jar

    3. **Managed Beans**: Managed Beans是JSF中业务逻辑的载体,它们可以注入到JSF组件中,处理用户的请求并更新模型数据。 4. **EL(Expression Language)**: EL是一种简洁的表达式语言,用于在JSF视图中访问和操作...

    jsf-api.jar.zip

    7. **Managed Beans**:JSF中的 Managed Beans 是用于存储和管理业务逻辑的对象,可以与UI组件进行绑定。 8. **Navigation**:JSF支持基于规则的导航,可以根据用户操作和业务逻辑决定页面跳转。 **license.txt** ...

    jsf-api-1.2

    **Managed Beans** 是JSF中的业务逻辑容器。它们是Java类,可以注入到JSF组件中,用于处理用户交互和业务逻辑。在JSF 1.2中,可以通过在bean类上定义注解来配置bean的范围(如request、session或application级别)和...

    jsf-spring-4.0.3

    开发者通常会根据具体需求选择合适的集成方式,例如使用Spring的`DelegatingVariableResolver`实现JSF EL表达式对Spring Bean的访问,或者通过`ManagedProperty`注解将Spring Bean注入到JSF Managed Beans中。...

    jsf-by-example-源码.rar

    Managed Beans是JSF中处理业务逻辑的对象,它们通常包含了与视图交互的数据和方法。在JSF应用中,我们可以创建Managed Beans并使用注解(如`@ManagedBean`、`@SessionScoped`)来定义其生命周期和作用域。 **5. ...

    jsf-demo练兵

    在JSF项目中,你会找到表示层(Faces Beans)、控制层(Managed Beans)以及任何自定义的Java组件。 4. **bin**:这个目录通常存放编译后的Java类文件和其他资源文件。在构建过程中,`src`目录中的源码会被编译并...

    JSF 资源 managed bean 课件

    #### 一、JSF与Managed Beans的概念 - **JSF (JavaServer Faces)**:一种用于构建企业级Web应用程序的标准Java技术。它提供了一种简化的方式来构建用户界面,并且能够更好地处理用户输入以及服务器端业务逻辑。 - **...

    jsf-api-src.zip

    JSF 1.2是JSF的第一个稳定版本,而JSF 2.x引入了许多改进和新特性,如Facelets视图技术、Managed Beans和依赖注入、以及更强大的Ajax支持。 JSF框架的核心组件包括以下几个部分: 1. **FacesContext**:这是JSF...

    JSF-2-Hello-World-Example.zip

    JavaServer Faces(简称JSF)是Java平台上的...通过运行和分析这个示例,开发者可以学习如何创建JSF页面,如何定义和使用Managed Beans,以及如何进行数据绑定和事件处理。这将为深入理解和使用JSF 2.x打下坚实的基础。

    JSF-EJB3.rar_EJB3.rar_base.util.EJBUtil_ejb jsf_jsf ejb3_jsf mys

    在本示例中,JSF的Managed Beans可能与EJB3的Session Beans相互协作。Managed Beans作为JSF的模型层,通过依赖注入获取到Session Beans的实例,然后调用其方法来处理业务逻辑。同时,JSF的视图层(Facelets页面)会...

    jsf + spring结合所需jar包

    在将JSF与Spring结合时,通常会使用Spring的依赖注入来管理JSF的Managed Beans,这样可以实现更灵活的控制和更好的测试性。为了实现这种结合,你需要以下jar包: 1. **JSF相关的jar包**:这通常包括jsf-api.jar和...

    JSF-Demo.rar_DEMO_jsf demo down load

    3. ** Managed Beans**:JSF中的Managed Beans是业务逻辑的容器,它们通常包含在`.java`文件中,通过注解如`@ManagedBean`和`@SessionScoped`来定义bean的作用域和生命周期。 4. **EL(Expression Language)**:...

    JSF-ppt教程 JSF 教程

    JSF 2.0引入了对CDI(Contexts and Dependency Injection)的支持,使得Managed Beans可以利用CDI的特性,如上下文感知和更强大的依赖注入。 **9. JSF与EJB、JPA集成** JSF可以很好地与其他Java EE技术如EJB...

    sample-jsf-spring-hibernate.rar_jsf spring

    1. **业务逻辑处理**:Spring作为中央容器,管理所有bean,包括JSF的后台Managed Beans和Hibernate的数据访问对象(DAO)。Spring的DI使得组件之间可以松散耦合,方便维护和扩展。 2. **数据持久化**:Hibernate负责...

    cursojsf-managedbeans-escopos:由 Cássio Oliveira 教授的 IFPB Monteiro 扩展课程中使用的项目存储库,内容是使用 JavaEE、JSF 和 Primefaces 进行 Web 开发简介。 演示组件使用的项目

    coursejsf-managedbeans-scopes 由 Cássio Oliveira 教授的 IFPB Monteiro 扩展课程中使用的项目存储库,内容是使用 JavaEE、JSF 和 Primefaces 进行 Web 开发简介。... ManagedBeans 和作用域简介。

    一个简单的jsf例子------JSF2学习笔记1

    Managed Beans 是JSF中用于存储和管理业务逻辑的对象。在JSF2中,可以通过注解如`@ManagedBean` 和 `@ViewScoped` 来轻松创建和配置bean。例如,我们可以定义一个名为`UserBean` 的bean,用于处理用户的登录信息。 ...

    jsf-api,java前台页面技术

    此外,JSF API与Java Managed Beans(JMBs)紧密集成,用于处理后台逻辑。Managed Beans是简单的Java对象,可以通过JSF EL直接访问,从而实现数据的封装和业务逻辑的处理。通过注解如`@ManagedBean`和`@Request...

    JSF-Info

    Managed Beans是JSF中的核心组件,它们是普通的Java对象,用于存储和处理应用程序的数据。JSF自动管理这些bean的生命周期,提供依赖注入功能,并且可以通过EL在视图中直接访问。 **4. 验证(08-Validation.pdf)** ...

Global site tag (gtag.js) - Google Analytics