快速业务通道

使用Acegi保护Java应用程序,第5部分: 保护JSF应用程序中的JavaBean - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
  1.1//EN"   "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> <faces-config>   <managed-bean>     <managed-bean-name>catalog</managed-bean-name>     <managed-bean-class>sample.Catalog</managed-bean- class>     <managed-bean-scope>request</managed-bean-scope>     <managed-property>      <property-name>publicData</property-name>      <value>#{publicCatalog.data}</value>     </managed-property>     <managed-property>      <property-name>privateData</property-name>      <value>#{privateCatalog.data}</value>     </managed-property>   </managed-bean>   <application>     <variable-resolver>      org.springframework.web.jsf.DelegatingVariableResolver     </variable-resolver>   </application> </faces-config>

清单 3 实际上演示了 JSF 的一个配置文件。它的根标签是 <faces- config>,这是大多数 JSF 程序员都熟悉的标签。根 <faces-config> 标签包含两个子标签,名为 <managed-bean> 和 <application>。 现在我要详细解释这两个标签。

使用Acegi保护Java应用程序,第5部分: 保护JSF应用程序中的JavaBean(4)

时间:2011-09-07 ibm Bilal Siddiqui

在 faces 配置文件中声明 bean 属性

清单 3 的 <managed-bean> 标签定义了 catalog bean 和它的属性。 <managed-bean> 标签有三个子标签 — <managed-bean-name>、 <managed-bean-class> 和 <managed-bean-scope> — 以及两个 <managed-property> 标签。前两个子标签分别定义了 bean 的名称 (catalog)和类(sample.Catalog)。

清单 3 中的每个 <managed-property> 标签定义 catalog bean 的一 个属性。每个 <managed-property> 标签有两个子标签 — <property-name> 和 <value> — 分别定义了属性的名称和值。从 清单 3 可以看出,第一个属性的名称是 publicData,它的值是 # {publicCatalog.data}。类似的,第二个属性的名称是 privateData,它的值是 #{privateCatalog.data}。

这两个值实际上是表达式,分别解析为其他托管 bean 的属性。第一个表达 式(#{publicCatalog.data})商业智能 publicCatalog bean 的 data 属性。 类似的,第二个表达式(#{privateCatalog.data})解析为 privateCatalog bean 的 data 属性。

JSF 提供了一种机制,能够将 #{publicData.data} 这样的表达式解析为实 际的托管 bean 实例。我将会讨论 JSF 的表达式-解析(expression-resolving )机制(在 “定义表达式商业智能器” 小节)。

但是,这里有一个问题。清单 3 的 JSF 配置文件不包含名为 publicCatalog 和 privateCatalog 的托管 bean。我在 第 3 部分 的 “访问 执行过代理的 Java 对象” 小节中配置了 publicCatalog 和 privateCatalog IOC bean(不是 JSF 托管 bean)。所以,JSF 表达式-解析机制必须能够解析 为 Acegi 的 IOC bean。

定义表达式解析器

JSF 的 javax.faces.el.VariableResolver 类是默认的表达式解析器,能够 将表达式解析为 JSF 的托管 bean。但是,VariableResolver 不能解析为 IOC bean。

JSF 提供了一种扩展机制,允许应用程序开发人员编写自己的表达式解析器 。Spring 在名为 org.springframework.web.jsf.De

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号