快速业务通道

用XSLT和XML改进Struts - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-23
outSelect"> <option>One</option> <option>Two</option> <option>Three</option> </select> <br> <input type="submit" value="Submit"> </form> <hr>

Model 2x主要的优势

这一节我们讨论一下Model 2x较之其他模式的一些优势。

用XSLT和XML改进Struts(5)

时间:2010-12-10

业务逻辑和表现逻辑的分离

XML文件流根据模式(model)和上下文环境而生成,样式表对XML文件流再进行加工。虽然一些XSLT转换器可以支持一些扩展,通过这些扩展你可以在样式表中调用Java或是其他类型的语言。但这些扩展往往缺乏移植性,而且使用起来比较麻烦。这样就不能再把业务逻辑放入到XSL样式表。

标准技术的使用

XPath是一种强大的表达式语言,用来从XML流中抽取出数据。我们可以通过使用<xsl:for-each>、<xsl:if>、<xsl:choose>这类的XSLT元素配合上模板属性值,使用起来比Struts中的HTML、Logic、Bean这些标签库好很多。XSLT使用了W3C(World Wide Web Consortium)标准的语言,不但提供了和Struts标签库类似的功能,而且还有很大的提高。此外XSLT还有一些标签库没有的强大功能,比如XSLT支持函数和递归。

其他需要考虑的问题

这章中我们讨论在Model2x中的如何实现国际化、错误处理、当前的一些限制以及以后可能的对Model 2x的改进。

应用的国际化

本地化水平和目标语言的复杂程度会影响到了页面的布局,还有文本消息和图片。例如,阿拉伯文从右向左书写而旧式的中文从上到下书写。这些语言不但需要文本的翻译,同时还需要完全不同的页面布局。Struts开发人员通常把所有的文本信息和图像资源的链接根据不同的地区保存到一起。根据用户的地区,Struts就会调用适当的资源。

Model 2x通过自动把资源存储到DOM中,然后把他们传递给视图。为了提高资源访问的效率可以对资源的读取和DOM的建立缓存。Model 2x 只是简单地把资源DOM插入到最终的DOM树中。这个最终的DOM树也包括了从Form Bean生成的动态内容。你可以轻松地用XPath在XSLT样式表中访问资源。应用的国际化不再通过Java资源捆绑技术实现,而是通过纯XML技术——根据用户当前的地区动态地切换样式表来实现。

错误处理

验证错误通常指的是在HTML表单中输入的参数出现的错误。通常我们把这类错误和其他类型的错误区分开来。验证错误以外的错误将被认为是较严重的错误。

在Struts中,可以在Form Bean中进行表单的验证,出现错误时会返回ActionError对象。把这些对象存储在请求中,然后串行化到Dom树中。这样样式表就可以很容易地就把这些错误显示到窗体中。同样的,用户可以也可以在Action中识别错误,然后把它们存储到请求中,进一步地串行化,最后用样式表来处理。

样式表会依据错误的类型和错误的内容选择是简单的显示一个错误的消息,还是将先前的页面重新显示,让用户修改数据后再提交。

工作流程

在这个Model 2x架构中,struts-config.xml文件并不能像在原来的Struts架构中那样负责控制工作流程。不过,要说明的是这个问题实际上并不是Model 2x的问题,而是这篇文章我们这个实现方案的问题。你可以在你自己的实现方案中修正这个问题。

输出

Model 2x架构的一个重要的特性就是能够动态改变输出的内容类型以及用户接口的风格。比方说,同样的应用项目可以针对老版本的浏览器生成HTML 3.2代码而同时又为新版本的浏览器生成HTML 4.0的代码。利用XSLT可以方便地获得各种输出格式: XHTML、XSL/FO、WML、简单的文本、CSV、PDF、SVG等等。

XSLT处理流程

Model 2x标志着Web框架在分离版面设计与风格逻辑以及引导样式表这两方面有了提高。Apache的Cocoon框

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号