频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

J2EE综合:深入谈论JSF与Struts的异同

来源: 作者:佚名 出处:巧巧读书 2008-03-24 进入讨论组

  正如Struts的struts-config.xml一样,JSF也有类似的faces-config.xml配置文件:

 < faces-config>
  < navigation-rule>
    < from-view-id>/index.jsp< /from-view-id>
    < navigation-case>
      < from-outcome>login< /from-outcome>
      < to-view-id>/welcome.jsp< /to-view-id>
    < /navigation-case>
  < /navigation-rule>
  < managed-bean>
    < managed-bean-name>user< /managed-bean-name>
    < managed-bean-class>com.corejsf.UserBean< /managed-bean-class>
    < managed-bean-scope>session< /managed-bean-scope>
  < /managed-bean>
< /faces-config>

在Struts-config.xml中有ActionForm Action以及Jsp之间的流程关系,在faces-config.xml中,也有这样的流程,我们具体解释一下Navigation:

  在index.jsp中有一个事件:

< h:commandButton label="Login" action="login" />

  action的值必须匹配form-outcome值,上述Navigation配置表示:如果在index.jsp中有一个login事件,那么事件触发后下一个页面将是welcome.jsp

  JSF有一个独立的事件发生和页面导航的流程安排,这个思路比struts要非常清晰。

  managed-bean类似Struts的ActionForm,正如可以在struts-config.xml中定义ActionForm的scope一样,这里也定义了managed-bean的scope为session。

  但是如果你只以为JSF的managed-bean就这点功能就错了,JSF融入了新的Ioc模式/依赖性注射等技术。

Ioc模式

  对于Userbean这样一个managed-bean,其代码如下:

 public class UserBean {
  private String name;
  private String password;

  // PROPERTY: name
  public String getName() { return name; }
  public void setName(String newValue) { name = newValue; }

  // PROPERTY: password
  public String getPassword() { return password; }
  public void setPassword(String newValue) { password = newValue; }
}

< managed-bean>
  < managed-bean-name>user< /managed-bean-name>
  < managed-bean-class>com.corejsf.UserBean< /managed-bean-class>
  < managed-bean-scope>session< /managed-bean-scope>

  < managed-property>
    < property-name>name< /property-name>
    < value>me< /value>
  < /managed-property>

  < managed-property>
    < property-name>password< /property-name>
    < value>secret< /value>
  < /managed-property>
< /managed-bean>

faces-config.xml这段配置其实是将"me"赋值给name,将secret赋值给password,这是采取Ioc模式中的Setter注射方式。

更多文章 更多内容请看Struts框架应用专题专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章