随笔 - 3, 文章 - 0, 评论 - 12, 引用 - 0
数据加载中……

什么是IoVC

什么是IoVC

    IoVC是Inversion of View Control的缩写,意思是视图反转控制,是AOM的核心特性之一,IoVC实现了将对UI的控制力转移到ManagedBean中,UI完全不关心谁会来使用它本身,也不需要关心在上面所展现的数据内容是什么,从而实现了UI与控制逻辑的完全分离,简言之,IoVC是一种更高层次的MVC。

    初一看,IoVC好像也没什么特别的,甚至有点概念炒作的嫌疑,但是真正使用它、理解它之后,你会发现,它所提供的编程模型为你的开发带来了实质性的帮助。

IoVC带来了什么

    IoVC提供了“绑定”、“多语言支持”、“资源注入”、“逻辑事件”等特性,这些特性主要作用在ManagedBean上面,ManagedBean是位于UI与业务服务之间的协调者,基于这些特性,在ManagedBean中,一方面可以对UI实现完全的控制,另一方面,可以灵活自然的与业务服务进行交互。

托管Bean的简化

    传统方式中,编写一个ManagedBean,需要编写faces-config.xml文件,例如编写两个ManagedBean,UserBean与DepartmentBean,其中UserBean需要引用DepartMentBean,需要采用下面的方式来声明faces-config.xml文件:
  <managed-bean>
    
<managed-bean-name>DepartmentBean</managed-bean-name>
    
<managed-bean-scope>session</managed-bean-scope>
    
<managed-bean-class>demo.DepartmentBean</managed-bean-class>
  
</managed-bean>

  
<managed-bean>
    
<managed-bean-name>UserBean</managed-bean-name>
    
<managed-bean-scope>session</managed-bean-scope>
    
<managed-bean-class>demo.UserBean</managed-bean-class>
    
<managed-property>
      
<property-name>departmentBean</property-name>
      
<property-class>demo.DepartmentBean</property-class>
      
<value>#{DepartmentBean}</value>
    
</managed-property>
  
</managed-bean>

    IoVC提供了@ManagedBean、@ManagedProperty、@MapEntries、@ListEntries等关于ManagedBean定义的一整套完整的标签,上面的定义,在IoVC中将会转变为如下方式直接声明在代码中,无需维护faces-config.xml文件:
@ManagedBean
public class DepartmentBean
{
    
}

@ManagedBean
public class UserBean
{
    @ManagedProperty(
"#{DepartmentBean}")
    
private DepartmentBean departmentBean;
    
}

关于IoVC剩余的几个特性的支持的描述,我将会陆续写一些文章来进行深入介绍。

在把“IoVC是什么、IoVC能够做什么”这些基本问题解释清楚后,我计划探讨一下“IoVC是怎么实现的?”,以及“为什么有了IoVC之后,组件的无状态就可以变成可能?”等问题。

绑定(Binding)

  

资源注入 (Injection)

  

多语言支持

   

逻辑事件

   

“无状态组件”的传说

posted on 2008-02-24 01:15 张旭 阅读(1795) 评论(3)  编辑  收藏

评论

# re: 什么是IoVC  回复  更多评论   

赞一个!
期待后续文章
2008-02-24 13:17 | wswz

# re: 什么是IoVC[未登录]  回复  更多评论   

什么是AOM?
2008-03-21 17:31 | AJ

# re: 什么是IoVC  回复  更多评论   

<javascript></javascript>
2010-06-02 13:51 | f

只有注册用户登录后才能发表评论。


网站导航: