注册本站  论坛  繁體中文

慧民电脑芯片级维修-电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> Java >> 开源技术 >> Struts >> Java正文

JSF与Struts的比较 超易懂!

文章来源:中国IT实验室整理 作者:佚名 更新时间:2008-10-6 12:42:02 【 】 【加入收藏

  Struts和JSF/Tapestry都属于表现层框架,这两种分属不同性质的框架,后者是一种事件驱动型的组件模型,而Struts只是单纯的MVC模式框架,老外总是急吼吼说事件驱动型就比MVC模式框架好,何以见得,我们下面进行详细分析比较一下到底是怎么回事?

  首先事件是指从客户端页面(浏览器)由用户操作触发的事件,Struts使用Action来接受浏览器表单提交的事件,这里使用了Command模式,每个继承Action的子类都必须实现一个方法execute。

  在struts中,实际是一个表单Form对应一个Action类(或DispatchAction),换一句话说:在Struts中实际是一个表单只能对应一个事件,struts这种事件方式称为application event,application event和component event相比是一种粗粒度的事件。

  struts重要的表单对象ActionForm是一种对象,它代表了一种应用,这个对象中至少包含几个字段,这些字段是Jsp页面表单中的input字段,因为一个表单对应一个事件,所以,当我们需要将事件粒度细化到表单中这些字段时,也就是说,一个字段对应一个事件时,单纯使用Struts就不太可能,当然通过结合JavaScript也是可以转弯实现的。

  而这种情况使用JSF就可以方便实现,

  #{login.userId}表示从名为login的JavaBean的getUserId获得的结果,这个功能使用struts也可以实现,name="login" property="userId"

  关键是第二行,这里表示如果userId的值改变并且确定提交后,将触发调用类UserLoginChanged的processValueChanged(...)方法。

  JSF可以为组件提供两种事件:Value Changed和 Action. 前者我们已经在上节见识过用处,后者就相当于struts中表单提交Action机制,它的JSF写法如下:

  从代码可以看出,这两种事件是通过Listerner这样观察者模式贴在具体组件字段上的,而Struts此类事件是原始的一种表单提交Submit触发机制。如果说前者比较语言化(编程语言习惯做法类似Swing编程);后者是属于WEB化,因为它是来自Html表单,如果你起步是从Perl/PHP开始,反而容易接受Struts这种风格。

基本配置

  Struts和JSF都是一种框架,JSF必须需要两种包JSF核心包、JSTL包(标签库),此外,JSF还将使用到Apache项目的一些commons包,这些Apache包只要部署在你的服务器中既可。

  JSF包下载地址:http://java.sun.com/j2ee/javaserverfaces/download.html选择其中Reference Implementation。

  JSTL包下载在http://jakarta.apache.org/site/downloads/downloads_taglibs-standard.cgi

  所以,从JSF的驱动包组成看,其开源基因也占据很大的比重,JSF是一个SUN伙伴们工业标准和开源之间的一个混血儿。

  上述两个地址下载的jar合并在一起就是JSF所需要的全部驱动包了。与Struts的驱动包一样,这些驱动包必须位于Web项目的WEB-INF/lib,和Struts一样的是也必须在web.xml中有如下配置:


  
    Faces Servlet
    javax.faces.webapp.FacesServlet
    1
  

  
    Faces Servlet
    *.faces
  


  这里和Struts的web.xml配置何其相似,简直一模一样。

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



  
    /index.jsp
    
      login
      /welcome.jsp
    

  

  
    user
    com.corejsf.UserBean
    session
  

  • 上一篇Java:

  • 下一篇Java:
  • 最 新 热 门
     利用Ruby简化你的Java测试(进阶篇)
     IIS+tomcat整合,并且通过域名访问网站
     Eclipse客户端程序中多线程的使用
     实现向eclipse控制台输入消息
     浅谈Acegi配置-Spring-Java
     反思Spring:由Ruby on Rails想到的
     利用spring2.5和Reflection简化测试中的moc…
     struts2.0表单提交带参数问题
     JSF与Struts的比较 超易懂!
     Struts从零开始六、Struts的模块使用实例
    最 新 推 荐
     struts2.0表单提交带参数问题
     JSF与Struts的比较 超易懂!
     Struts从零开始六、Struts的模块使用实例
     Struts从零开始五、Struts中验证数据实例
     Struts从零开始四、Struts中的国际化
     Struts从零开始三、连接数据库实例
     Struts从零开始二、解决中文乱码的问题实例
     Struts从零开始一、普通的登录验证实例
     Struts2_Spring 整合
     Struts2的类型转换
    相 关 文 章

    详细了解JSP中九个隐含对象
    JSF和Struts的区别概述
    JSTL中fn表达式的使用说明
    JSP Web框架研究:Struts
    JSF在GlassFish管理控制台中的应用
    介绍JSP程序动态网站环境搭建的详细步骤
    Jsp页面中文参数传递get和post方法分析
    Windows操作系统下JSP程序开发环境配置
    JSF点滴积累--权限验证
    经验分享全过程JSP程序员完全蜕变手册

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    门市地址:广东省佛山市南海区黄岐黄海路133号
    本网站所有内容未经许可不得转载或做其他使用