Java+XML+MVC框架StrutsCX简介

来源:互联网 发布:阿里指数怎么看淘宝 编辑:程序博客网 时间:2024/05/01 12:43
StrutsCX是一个以Struts为基础的XML解决方案的框架,和Struts不同,它使用XML(确切的说是XSLT)作为表现层,而不是像Struts那样是以JSP作为表现层。

目前它的最新版本是0.9.5,这个也就意味着它还没有完全稳定和成熟,但是目前它所具备的一些功能已经足以满足我们大部分的需要了。

根据其官方网站的说明,它具备如下的特性:
  • 可以运行于任何Servlet引擎或者J2EE应用服务器的轻量框架。
  • 实现简单快速。
  • 支持国际化。
  • 使用纯粹的XML和XSLT解决方案替换Struts的JSP和Message资源特性。
  • 输出100%符合XML, XHTML, XSL-FO, WML或者其他的格式标准。
  • 错误验证简单。
  • 内部使用JDOM。
  • 包括FOP,支持PDF, SVG和ASCII输出。
  • 包括Struts Validator。
  • 支持多种转换。
  • 支持客户端XSLT。
  • 包含范例应用(单个的WAR包)。

    从其结构而言,它和Struts的不同之处在于Action执行完毕以后的回应,Struts在Action执行完毕之后转向的是JSP,而StrutsCX转向到的是它的核心类:StrutsCXServlet,该类会根据配置文件查找得到XSL文件,并且自动生成带有XSL绑定的XML文件(内部是结合StrutsCXDocumentBuilder和StrutsCXTransformer),对于一些较新的支持XML的浏览器(包括IE5以上,Mozilla 1.4以上)就可以显示结果了。

    以下两个图片可以让我们对比一下Struts和StrutsCX的结构:



    Struts



    StrutsCX


    至于其安装和配置,其网站(http://it.cappuccinonet.com/strutscx/install.php?target=install)有其全面的说明。

    简单说明如下:

    拷贝所需的jar包(该项目依赖很多很受欢迎的开源项目的结晶,例如avolon,Castor XML,dom4j,FOP,Jakarta Commons ,Jakarta ORO ,JDOM ,Log4j ,Struts ,Xerces)

    配置web.xml声明使用StrutsCXServlet:

    <!-- StrutsCXServlet --><servlet>  <servlet-name>StrutsCXServlet</servlet-name>  <servlet-class>com.cappuccinonet.  strutscx.xslt.StrutsCXServlet</servlet-class>  <init-param>    <param-name>debug</param-name>    <param-value>false</param-value>  </init-param>  <load-on-startup>2</load-on-startup></servlet><servlet-mapping>  <servlet-name>StrutsCXServlet</servlet-name>  <url-pattern>/StrutsCXServlet</url-pattern></servlet-mapping>


    配置struts-config.xml使用StrutsCXPlugIn:

    <plug-in className="  com.cappuccinonet.strutscx.util.StrutsCXPlugIn">  <set-property property="config"   value="/WEB-INF/strutscx-config.xml" /></plug-in>


    编写Action,和Struts不同,我们需要在Action里面设置要绑定的XSL文件的路径:

    // pointer to the strutscx-definitionsString xslFile = "simple.xsl";// set it to the HttpServletRequestrequest.setAttribute(  StrutsCXConstants.XSL_KEY, xslFile);


    以上只是一个非常简单的介绍,由于笔者正在做的一个项目是一个重写的项目,要求使用最新的技术,未来有可能支持WML,因此采取的解决方案就是使用XML代替JSP,而目前可以找到的就是这个框架了。

    根据目前我们使用的经验,主要问题可能还是国际化支持上的问题,因为其给出的国际化支持的方案和我们现在常用的基于JAVA的properties或者Resources方案不同,需要采用它定义的XML格式,因此使用不是很方便。

    至于开发方面,这里需要介绍的就是我们的开发经验,其实也没有什么,由于刚刚开始的时候我们对其生成的XML文件的内容不是很熟悉,因此我们采用的开发步骤如下:

    配置strutscx-config.xml文件,编写Action和FormBean,以调试模式观看其生成的XML文件的内容,依据XML内容编写XSL,最后测试XSL文件是否正确。

    需要注意的是我们要在strutscx-config.xml中将debugxml设置为on,然后我们在调用Action的时候在URL中增加debugxml=true让其向浏览器输出XML(例如http://localhost:8080/sample/hello.do?debugxml=true)

    由于这个框架还非常的新,目前介绍这个框架的内容还不是很多,使用的人也可能不是很多,但是笔者相信在XML的大旗下这个框架应该是会很广泛的应用的。

    下载地址:
    http://sourceforge.net/project/showfiles.php?group_id=67148&package_id=65546&release_id=201686