`
zhouxing
  • 浏览: 199779 次
  • 性别: 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物件。
分享到:
评论

相关推荐

    JSF2-Managed-Beans

    JSF 2.0: Managed Beans – Classes to Represent Form Info

    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入门文档(英文ppt)

    ...........\03-Managed-Beans.pdf ...........\04-Expression-Language.pdf ...........\05-Properties-Files.pdf ...........\06-Event-Handling.pdf ...........\07-HTML-Library.pdf ...........\08-...

    jsf实现登录功能

    这是一个使用jsf框架实现简易登录功能的小例子,对于初学者可以参考一下。

    javaee7-samples:JAVA EE 7 课程演示

    Managed Beans 1.0 - -- 网络服务规范 (删减)JAX-RPC 1.1 - - JAX-WS 2.2a - -项目-邮件列表 JAXB 2.2 - JSR 222 -项目-邮件列表 Web 服务 1.4 - JSR 109 Web 服务元数据 2.1 - JSR 181 JAX-RS 2.0 - JSR 339 -...

    JSF基础教程 简体中文

    o Beans 的组态与设定 o Beans 上的 List, Map 数据转换与验证 转换器(Converter)协助模型与视图之间的数据转换,验证器(Validator)协助进行语意检验(Semantic Validation)。 o 标准转换器 o 自订转换器 o ...

    JSF入门pdf

    2.2 Beans的配置与设定 2.3 Beans上的List, Map 3. 数据转换与验证 3.1 标准转换器 3.2自定义转换器 3.3标准验证器 3.4自定义验证器 3.5错误信息处理 3.6 自定义转换, 验证标签 4. 事件处理 4.1 动作事件 4.2 即时...

    JSF入门教程

    jsf入门教程讲解了JSF入门,managed beans,数据转换与验证,事件处理

    JSF入门资料.pdf

    一个JSF的入门资料,包括managed beans,资料转换与验证,事件处理,JSF标签,自定义元件.

    java server face 教程

    o Beans 的组态与设定 o Beans 上的 List, Map • 数据转换与验证 转换器(Converter)协助模型与视图之间的数据转换,验证器(Validator)协助 进行语意检验(Semantic Validation)。 o 标准转换器 o 自订转换器 o...

    JSF入门必看

    1.1 简介 JSF 1.2 第一个 JSF 程序 1.3 简单的导航 Navigation 1.4 导航规则设置 1.5 JSF Expression Language 1.6 国际化信息 2. Managed Beans

    The Definitive Guide to JSF in Java EE 8

    have happened years ago: the deprecation of the JSF managed bean facility in favor of using CDI beans. Other features are support for WebSocket using the Java EE WebSocket APIs donated by OmniFaces,...

    Java EE 6 规范

    Java EE 6 规范包括EJB 3.1 •Servlet 3.0 •JSP 2.2 •EL 2.2 •JMS 1.1 •JTA 1.1 ...•Managed Beans 1.0 •Contexts and Dependency Injection for Java EE 1.0 •Dependency Injection for Java 1.0

    myfaces:Apache MyFaces核心

    2.3-next等于JSF 2.3 API,但将@ManagedBeans委托给CDI。 通过XML配置的ManagedBeans被完全忽略。 旧的FacesEL(javax.faces.el。*)的实现也已被完全删除。 这将是即将到来的JSF 4.0的基础。 2.3.x JavaServer ...

    javaee API

    javax.el Provides the API for the Unified Expression Language shared by the JSP 2.1 and JSF 1.2 technologies. javax.enterprise.deploy.model Provides Tool Vendor implementation classes. javax....

Global site tag (gtag.js) - Google Analytics