整合Java6脚本、Groovy实现动态MVC模式

一个有弹性的和动态的开发环境正在受到前所未有的关注,甚至连脚本语言也显现出这方面的特性,这也正是我们所需要的,也就是说,我们永远需要建立易维护,并且可满足我们需求的应用程序。如果我们要想使用脚本语言参与进来,我们应该考虑一下Java SE 6所提供的一个新的脚本API:一个与语言无关的允许开发人员在Java代码中使用脚本语言的框架。使用这套新API,我们不仅可以利用脚本语言的特性,而且还能使用很多和Java相关器工具。

在本文中,我们提供了一个实例,这个实例将尽可能体现这套API的特性。并且使用这套API实现一个基于Model View Controller(MVC)模式的Web应用程序,这个程序同时还使用了Groovy框架(一个基于Java平台的动态脚本语言,Groovy负责实现商业逻辑,也就是MVC中的M层)。并且使用了不同的技术来实现MVC中的View层。对于控制层(Controller)层来说,我们使用WebLEAF,这是一个用于开发基于MVC模式的Web程序的开源框架。为了使这个例子更容易部署和运行,我们使用了一个基于Java的数据库:HSQLDB,这个数据库允许的们只通过两个文本文件来创建一个简单的数据库。为了实现可以产生HTML用户接口的view层,在本文中我们采用了XSLT技术,这是一种可以将XML文档转换成另外一种形式的语言,同时还使用了FreeMarker,这是一个流行的处理XML的模板引擎,如它可以使XML作为输入数据变得很容易。

在本文的例子中我们将首先开发一个web页,它将显示数据库的不同项,并允许我们选择一个,以便我们可以查看某项的详细信息。虽然这个程序很简单,但它足以清楚地表述本文要讲的内容了。

一、进行准备工作

第一步是建立健全个基本的标准Web应用程序结构,并且将最新的WebLEAF 3.x库加进来,这个版本可以非常好地支持新的Java脚本API,我们可按如下的五步进行:

1. 首先建立一个叫Test的目录。

2. 然后在Test目录中建立一个WEB-INF目录。

3. 在WEB-INF目录中建立两个目录:lib和classes。

4. 将开载的WebLEAF3.jar文件放到Test\WEB-INF\lib中。

5. 然后在Test\WEB-INF中建立一个标准化sevlet描述文件web.xml,它的内容如下:

<?xml version="1.0"?>
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
<web-app>
<!--
  WebLEAF controller servlet configuration
-->
<servlet>
  <servlet-name>WebLEAFController</servlet-name>
  <servlet-class>org.leaf.LEAFManager</servlet-class>
  <load-on-startup>2</load-on-startup>
</servlet>
<!-- End controller servlet -->
</web-app>

这个配置文件告诉Servlet容器实例化一个WebLEAF控制Servlet,并当Context开始时启动它。在这里我们要注意一个的值是2,一会我们要解释一下这个值为什么不是1,而是2。

最后,我们需要在WEB-INF中建立一个WebLEAF配置文件test.leaf.conf,内容如下:

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE WADSET SYSTEM "http://www.uib.es/leaf/LEAFwad.dtd">
<WADSET>
  <WAD
   NAME="Test"
   INIT_MODE="INITS_ON_START_UP"
   XML_ALLOW_SHOW="TRUE"
   XSLT_NO_CACHE="TRUE"
   >
  </WAD>
</WADSET>

虽然上面的配置文件只是最小化配置,但它对于本文的例子已经足够了。

时间: 2024-12-03 21:21:28

整合Java6脚本、Groovy实现动态MVC模式的相关文章

Extjs4使用mvc模式,封装Store层的ArrayStore无法动态加载后台数据

问题描述 Extjs4使用mvc模式,封装Store层的ArrayStore无法动态加载后台数据 store层代码 Ext.define('Desktop.store.function.FunctionStore'{ extend: 'Ext.data.ArrayStore' requires:['Desktop.model.function.UserModel'] model: 'Desktop.model.function.UserModel' autoLoad: true proxy:{

MVC模式概述

    MVC是三个单词的缩写,分别为:模型(Model),视图(View)和控制Controller).MVC模式的目的就是实现Web系统的职能分工.      Model层实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现.     View层用于与用户的交互,通常用JSP来实现.      Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作. MVC模式的

基于MVC模式的Struts框架概述

作者:yarshray   关键字: Java  J2EE  MVC  JSP  Servlet  MVC  Struts 内容简介:        MVC设计模式成为了目前十分流行的一种设计方法.它是一种软件的设计方法模式.并且被大量的开发和实践所证明.因此本文通过介绍Struts框架这种已经实现了MVC模式的软件构件框架了讨论该模式的优势和如何投入到软件开发中去.        本文内容注重理论和实践相结合,比较系统的从多层设计方式到分布式软件开发中所用到的技术,从而切入目前Sun公司退出的

MVC模式的PHP实现

MVC模式在网站架构中十分常见.它允许我们建立一个三层结构的应用程式,从代码中分离出有用的层,帮助设计师和开发者协同工作以及提高我们维护和扩展既有程式的能力. 视图(View) "视图"主要指我们送到Web浏览器的最终结果--比如我们的脚本生成的HTML.当说到视图时,很多人想到的是模版,但是把模板方案叫做视图的正确性是值得怀疑的. 对视图来说,最重要的事情可能是它应该是"自我意识(self aware)"的,视图被渲染(render)时,视图的元素能意识到自己在更

浅谈使用MVC模式进行JavaScript程序开发_javascript技巧

随着前台开发日益受到重视,客户端代码比重日益增加的今天,如何在javascript开发里应用MVC模式,这个问题似乎会一直被提到,所以偶在这里粗略的谈一下自己的看法吧. MVC模式的基本理念,是通过把一个application封装成model, view和controller三个部分达到降低耦合,简化开发的目的.这么说很空洞,大家可以实际看个例子: <select id="selAnimal"> <option value="cat">cat

MVC模式的PHP实现_php基础

作者:Harry Fuecks 翻译:Easy Chen  MVC模式在网站架构中十分常见.它允许我们建立一个三层结构的应用程式,从代码中分离出有用的层,帮助设计师和开发者协同工作以及提高我们维护和扩展既有程式的能力. 视图(View) "视图"主要指我们送到Web浏览器的最终结果--比如我们的脚本生成的HTML.当说到视图时,很多人想到的是模版,但是把模板方案叫做视图的正确性是值得怀疑的. 对视图来说,最重要的事情可能是它应该是"自我意识(self aware)"

基于MVC模式的Struts框架研究与应用

摘要: Struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发.本文讨论了Struts框架实现MVC模式的原理与方法,给出了一个具体的应用实例. 分布式企业应用软件结构复杂.涉及多种技术,对设计开发人员提出了很高的要求.在此情况下,运用设计模式――可复用的设计方案进行软件的设计开发十分必要.MVC模式已被证明是一种成功的软件设计模式,本文主要讨论了一种实现MVC模式的应用框架――Struts,并通过一个实例展示了Struts框架实现MVC模式的方法.

(iOS开发总结)MVC模式

一.MVC 模式 MVC,即模型-视图-控制器(Model-View-Model),是软件开发中应用甚广的一种设计模式.其用意是将数据与视图分化,利用模型数据控制视图的显示,但两者的交互由控制器控制.在iOS开发中,MVC模式应用很广,是iOS控件设计的主要模式之一. UITableView与UICollectionView 可以说是iOS开发中最能体现MVC模式的两种控件,以下举UITableView为例,其中UITableViewCell是做显示任务的View,那么每行UITableView

什么是MVC模式

    MVC模式是"Model-View-Controller"的缩写,中文翻译为"模式-视图-控制器".MVC应用程序总是由这三个部分组成.Event(事件)导致Controller改变Model或View,或者同时改变两者.只要Controller改变了Models的数据或者属性,所有依赖的View都会自动更新.类似的,只要Controller改变了View,View会从潜在的Model中获取数据来刷新自己.MVC模式最早是smalltalk语言研究团提出的,