替代STRUTS

时间:2010-01-19 08:57:14   来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:开发项目的经验,总结出STRUTS的不足:1 入门不易,特别是TAGLIB2 大量的TAGLIB让美工设计人员无所适从3 比较适合于大的项目鉴于此,笔者总结出另一符合MVC模式的替代架构。先谈MVC模式 “MVC模式不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。。。。。。”准确地说,MVC更象是一个框架。我们的方案分三个步骤:1 在视图层...
  正文:

关键词:STRUTS,数据绑定,MVCSTRUTS的不足在基于MVC模式的架构里,随着B/S开发的流行,近来尘嚣其上的就是STRUTS。“STRUTS本身只是一个开发框架,它本身并不能保证程序开发的模块结构是否清晰, 也不能保证程序开发的进程 ”。笔者根据一些朋友利用此架构开发项目的经验,总结出STRUTS的不足:1 入门不易,特别是TAGLIB2 大量的TAGLIB让美工设计人员无所适从3 比较适合于大的项目鉴于此,笔者总结出另一符合MVC模式的替代架构。先谈MVC模式 “MVC模式不仅实现了功能模块和显示模块的分离,同时它还提高了应用系统的可维护性、可扩展性、可移植性和组件的可复用性。。。。。。”准确地说,MVC更象是一个框架。我们的方案分三个步骤:1 在视图层利用MS的浏览器带的数据绑定技术,实现数据与界面显示。2 在控制层我们实现取数引擎,利用COMMAND模式来控制流程转向。3 在模型层使用JAVABEAN实现数据模型。方案最大的优点在于数据绑定的应用。因此下面的例子都是为了配合演示视图层。没有实现流程控制和JAVABEAN模型。视图层应用数据绑定数据绑定是Internet Explore的专长之一。使用数据绑定,可以将文档中的数据和ActiveX数据对象数据库相连,并且使用一种简单易用的方式处理数据。这项技术很有用,因为数据库的数据可以作为XML文档在因特网上发送,并可在浏览器上立即转换过来,这意味着熟悉数据库编程的程序员可以集中精力在使用数据库方法上而不是DOM方法上。数据绑定分为两个步骤:1 使用数据源对象 2 把数据和HTML元素绑定在IE浏览器中有四种数据员对象:MSHTML控件,TDC表格数据控件,XML DSO和XML数据岛。我们这里用到的是XML数据岛。因为我们的数据交换格式是XML数据包。我们可以通过设置数据源。在这里ID是绑定HTML的数据源的代码,SRC是取得XML数据包的引擎,其可以是一个得到数据包的URL,也可以是个XML文件。接着我们开始对HTML对象进行数据绑定。我们要用到这些HTML元素的DATASRC属性指定数据源ID,DATAFLD指定数据值。例如:将下列XML存为文件custom.xml<?xml version="1.0" ?> Charles 58704 Tom 58703 John 58702 将下列HTML代码存为test.html,和custom.xml在同一目录下:数据绑定

下面是数据绑定的结果: 看看怎么样,是否很简单我们就得到一个表格。而且不用做任何显示计算,只要让美工人员为HTML元素加个属性即可。而且我们还可以使用pageSize设置页的记录数,pageCount记录集包含的页数,moveFirst,moveLast,moveNext,movePrevious轻松实现分页。怎么样,和STRUTS相比是否我们做得更简单,结构更清晰。而且大量计算集中在客户端,可以减轻服务器端的计算负荷。在控制层传递XML数据包我们之所以用XML作为数据交换是因为JAVASCIRPT和JAVA都有DOM对象来解析XML。我们将通过一个SERVLET来得到一个XML包;import javax.servlet.*;import javax.servlet.http.*;import java.io.*;import java.util.*;public class XMLData extends Httphotoshop/ target=_blank class=infotextkey>pservlet { static final private String CONTENT_TYPE = "text/html; charset=GBK"; //Initialize global variables public void init() throws ServletException { } //Clean up resources public void destroy() { } public void service(HttpServletRequest request,HttpServletResponse response) throws IOException,ServletException{ response.setContentType(CONTENT_TYPE); PrintWriter out = response.getWriter(); out.println("<?xml version=/"1.0/" ?>"); out.println(""); out.println(" "); out.println(" Charles"); out.println(" 58704 "); out.println(" "); out.println(" "); out.println(" Tom"); out.println(" 58703 "); out.println(" "); out.println(" "); out.println(" John"); out.println(" 58702
来源:http://www.002pc.com/master/College/Programming/JSP/12038.html

收藏到:

关于《替代STRUTS》文章的评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面

随机文章

    SQL Error: select * from ***_ecms_article where classid='85' and checked=1 order by rand() limit 10

顶出来的热门

    SQL Error: select * from ***_ecms_article where classid='85' and checked=1 order by diggtop desc,id desc limit 10
站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td