摘要:struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于mvc的web应用程序的开发。本文讨论了struts框架实现mvc模式的原理与方法,给出了一个具体的应用实例。
分布式企业应用软件结构复杂、涉及多种技术,对设计开发人员提出了很高的要求。在此情况下,运用设计模式――可复用的设计方案进行软件的设计开发十分必要。mvc模式已被证明是一种成功的软件设计模式,本文主要讨论了一种实现mvc模式的应用框架――struts,并通过一个实例展示了struts框架实现mvc模式的方法。 mvc设计模式 mvc(modle-view-controller,模型-视图-控制器)模式是xerox parc在20世纪80年代为编程语言smalltalk-80所设计的一种软件设计模式,至今已被广泛使用,并被推荐为sun公司j2ee平台的设计模式,其为开发交互式应用系统提供了一个优秀的设计模式,受到越来越多开发者的欢迎。 mvc模式主要由3个部分组成:模型、视图和控制器,其结构如图1所示。<%@ page contenttype="text/html; charset=gbk" %>
<%@ taglib uri="/web-inf/struts-html.tld" prefix="html" %>
<%@ taglib uri="/web-inf/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/web-inf/struts-logic.tld" prefix="logic" %>
<html>
<head>
<title> 前期准备资料录入</title>
<link rel="stylesheet" type="text/css" href="../images/mobile.css">
</head>
<body bgcolor="#ffffff">
<html:form action="/information/budgetinfoadd" enctype="multipart/form-data">
<table width="95%" border="1" cellspacing="1" cellpadding="2" bordercolor="#cbe7f8" align="center">
<tr bgcolor="#f2f9fd">
<td width="20%">类型:</td>
<td>
<html:select property="infotype" styleclass="input2">
<html:options collection="typelist" property="id" labelproperty="typename"/>
</html:select>
</td>
</tr>
……
</table>
</html:form>
</body>
</html> 程序中首先引入了html、bean和logic标记库,然后用action指出调用的action组件的绝对路径,标记<html:form>和</html:form>封装了表单数据,在业务层中用相应的actionform组件可以将输入的数据全部得到。 可以看出在视图中没有进行任何的业务逻辑的处理,其主要作用是给出客户端显示的信息和处理结果,以及请求的转发,它是和用户交互的接口。 2、构建模型 模型采用javabean和ejb组件,设计和实现系统的业务逻辑。根据不同的请求从action派生具体action处理对象,完成“做什么”的任务来调用由bean构成的业务组件,创建由actionform 的派生类实现对客户端表单数据的封装。 下面以budgetinfoaddform这个actionform bean进行说明: …… public final class budgetinfoaddform extends actionform {
private string infotype;
private string title;
private string content;
private formfile infofile; 这里表示budgetinfoaddform继承于actionform,在这个bean中定义了视图中所要显示数据信息的参数,包括infotype,资料分类;title,资料标题;content,资料内容;infofile, 资料文件。同时在budgetinfoaddform中提供了设定和访问这些参数的方法:public string getinfotype()
public void setinfotype(string infotype)
public string gettitle()
public void settitle(string title)
public string getcontent()
public void setcontent(string content)
public formfile getinfofile()
public void setinfofile(formfile infofile)
public void reset(actionmapping mapping, httpservletrequest request) {
title = null;
content = null;
infofile = null;
} 3、构建控制器 在struts应用框架中,中心控制器(actionservlet)是由struts框架本身所提供,开发人员一般无须对该actionservlet进行再次开发;负责具体业务处理的action类则是开发者开发实现的重点,在这些action对象中会进行所有的业务操作,处理完毕,由struts的actionservlet转向到jsp页面,将处理结果返回给客户端。 在预算资料模块中,实现了四个action:budgetinfoaddaction,用于资料录入; budgetinfocontentaction,用于资料查询; budgetinfoupdateaction,用于资料修改;budgetinfodelaction,用于资料删除。 4、建立配置文件 struts框架中有两个配置文件web.xml和struts-config.xml,用于配置struts系统中的各个模块之间的交互。通过对这两个配置文件的配置,把struts框架中mvc的各个部分联系起来,实现了一个真正的mvc系统。 结束语 struts是一种基于mvc设计模式的企业级web应用开发框架,它的设计目的是从整体上减轻构造企业web应用的负担。其自带的标记库,能大大提高开发效率,同时提高了系统的可维护性和可扩充性。本文在总结struts框架技术及其工作原理的基础上给出了一个应用实例,为今后更好的应用struts框架开发web应用程序提供了参考。
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器