Java+XML+MVC框架StrutsCX简介[转]

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的结构:

299589.gif

Struts

299591.gif

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-definitions
String xslFile = "simple.xsl";
// set it to the HttpServletRequest
request.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

转载于:https://www.cnblogs.com/laoxingxuzhou/archive/2004/12/09/5172979.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/269554.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

oracle高资源消耗sql,Oracle中定位重要(消耗资源多)的SQL

在分析SQL性能的时候&#xff0c;经常需要确定资源消耗多的SQL&#xff0c;总结如下&#xff1a; 1 查看值得怀疑的SQLselect substr(to_char(s.pct,在分析SQL性能的时候&#xff0c;经常需要确定资源消耗多的SQL&#xff0c;&#xff0c;总结如下&#xff1a;1 查看值得怀疑的…

《Too Much Heaven》

我第一次听<Too Much Heaven>是在阿哲的《夜色》(The Color of the Night)专辑&#xff0c;这张英文专辑翻唱了很多名歌&#xff0c;包括著名的<Against All Odds>&#xff0c;当然这是我后来才知道的。 <Too Much Heaven>的原唱是Bee Gees&#xff0c;后来…

poj2109 Power of Cryptography(数学题)

题目链接&#xff1a;http://poj.org/problem?id2109 ---------------------------------------------------------------------------------------------------------------------------------------------------------- 欢迎光临天资小屋&#xff1a;http://user.qzone.qq.c…

@PostContruct注解的使用

PostConstruct是Java自己的注解. PostConstruct该注解被用来修饰一个非静态的void()方法. PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次. PostConstruct在构造函数之后执行,init()方法之前执行. 如果我们知道servlet的生命周期&#xff…

接oracle私活价格,也来记录一下第一次接私活的体验

来源所在部门领导答应另一个部门领导解决业务上的一些问题&#xff0c;刚好是我负责。由于各总原因&#xff0c;没过试用期&#xff0c;领导需要我离职了&#xff0c;跟另一个部门领导确认后&#xff0c;就在离职前 2 天加个班&#xff0c;交付了已经完成的部分。大概 2 个月后…

Plain text, flat file, 及flat-file database 如何翻译

经常遇到Plain text, flat file, 及flat-file database 这三个词&#xff0c;但不知翻译成什么样的中文好。请大家多指教。 英文意思我已经找到了&#xff1a; (1) plain text Refers to textual data in ASCII format. Plain text is the most portable format because it is …

《Vim实用技巧》阅读笔记 --- 移动及跳转

1、在对实际行的操作之前加上g&#xff0c;即可对屏幕行进行操作&#xff0c;例如&#xff1a;gj表示向下移动一个屏幕行&#xff0c;g^表示移动到屏幕行的第一个非空白字符等等 2、Vim有两组面向单词正向及反向移动的命令&#xff1a; w 正向移动到下一个单词的开头b 反向移动…

JAVA面试题------------final 关键字是干什么用的?谈谈你的理解。

final 是 Java 中的关键字&#xff0c;它表示的意思是不可变的&#xff0c;在 Java 中&#xff0c;final 主要用来&#xff1a; 修饰类&#xff0c;final 修饰的类不能被继承&#xff0c;不能被继承的意思就是不能使用 extends 来继承被 final 修饰的类&#xff1b; 修饰变量&…

oracle财务软件凭证打印,金算盘财务软件后台数据库为Oracle

金算盘财务软件后台数据库为Oracle&#xff0c;OA系统中虽然提供了金算盘财务软件的接口&#xff0c;但由于版本较低&#xff0c;无法直接采集金算盘财务软件的备份数据。我们发现&#xff0c;在已试验的金算盘财务软件的凭证表中&#xff0c;科目字段中既有科目编码也有科目名…

发布IP地址查询的WEB SERVICE

在值得期待的2005来临之际,发布IP地址查询WEB SERVICE,顺祝博客园的所有朋友们,新年快乐,新年好心情. http://IPLOOKUP.ASPSIR.COM 此外,WHOIS查询WEB SERVICE http://WHOIS.ASPSIR.COM 欢迎大家使用和发表建议

C#23种设计模式

创建型: 1. 单件模式(Singleton Pattern) 2. 抽象工厂&#xff08;Abstract Factory&#xff09; 3. 建造者模式(Builder) 4. 工厂方法模式&#xff08;Factory Method) 5. 原型模式(Prototype) 结构型: 6. 适配器模式&#xff08;Adapter Pattern) 7. 桥接模式&#xff08;Bri…

Unity GeometryShader(从一个线框渲染的例子开始)

GeometryShader这个概念&#xff0c;已经出现很久了&#xff0c;但由于性能不佳&#xff0c;所以使用的并不多。甚至移动平台根本就不支持。移动平台的硬件更新速度也是越来越快&#xff0c;GS的应用普及应该不会太远。就现阶段而言&#xff0c;GS来做一些辅助效果也是有一定用…

单身者的十大旅游圣地[转自我爱游网]

http://www.5aiu.com/index.asp[我爱游] 《一》丽江 纵观古今中外&#xff0c;有多少象丽江这样的古城,保护的如此完好而且生机勃勃&#xff1f; 都说丽江是个适合发呆的地方&#xff0c;这话一点也不假&#xff0c;在时光倒退了二十年的地方&#xff0c;住在一个古老的四合院里…

为什么SimpleDateFormat不是线程安全的?以及解决方法说明

一&#xff1a;概述 SimpleDateFormat 类主要负责日期的转换与格式化等操作&#xff0c;在多线程的环境中&#xff0c;使用此类容易造成数据转换及处理的不正确&#xff0c;因为 SimpleDateFormat 类并不是线程安全的&#xff0c;但在单线程环境下是没有问题的。 SimpleDateF…

java+random+oracle,oracle随机数 — dbms_random

oracle随机数 — dbms_randomORACLE的PL/SQL提供了生成随机数和随机字符串的多种方式&#xff0c;罗列如下:1、小数( 0 ~ 1)select dbms_random.value from dual2、指定范围内的小数 ( 0 ~ 100 )select dbms_random.value(0,100) from dual3、指定范围内的整数 ( 0 ~ 100 )sele…

《Effective C#》读书笔记-1.C# 语言习惯-2.使用运行时常量(readonly)而不是编译时常量(const)...

概念 编译时编译时顾名思义就是正在编译的时候。那啥叫编译呢&#xff1f;就是编译器帮你把源代码翻译成机器能识别的代码。(当然只是一般意义上这么说&#xff0c;实际上可能只是翻译成某个中间状态的语言。比如Java只有JVM识别的字节码&#xff0c;C#中只有CLR能识别的MSIL。…

MQ介绍

一&#xff1a;MQ介绍 1:异步 2:解耦 3:削峰 二&#xff1a;MQ优缺点 三&#xff1a;Kafka和RabbitMQ和RocketMQ比较

白月光

张信哲----白月光http://mu.njzx.com/gt/nan/zxz-200409/01.mp3白月光 心里某个地方那么亮 却那么冰凉每个人都有一段悲伤想隐藏却欲盖弥彰白月光 照天涯的两端在心上 却不在身旁擦不干你当时的泪光路太长追不回原谅你是我不能言说的伤想遗忘又忍不住回想像流亡一路跌跌撞撞…

oracle 次月,Oracle日期查询:季度、月份、星期等时间信息

摘要&#xff1a;Select to_char(sysdate,Q) from dual;--指定日期的季度Select to_char(sysdate,MM) from dual;--月份Select to_char(sysdate,WW) from dual;--当年第几周Select to_char(sysdate,Q) from dual;--指定日期的季度Select to_char(sysdate,MM) from dual;--月份S…