| 网站首页 | 文章 | 下载 | 图库 | 留言 | 论坛 | 邮箱 | 黑客商城 | 资源 | 博客 | 会员区 | 黑客动画 | 视频资源 | 经典收集 | 
免费服务 发表文章 在线破解 黑客游戏 精华收集 电影频道 音乐频道 二级域名 免费代理 免费 FTP 交换资源
收费服务 黑客培训 光盘刻录 黑客书籍 视频下载 主力频道 空间域名 网站建设 特色服务 解决方案 我要投诉
您现在的位置: 华夏黑客同盟 >> 经典收集 >> 程序设计 >> Java语言 >> STRUTS >> 收集正文 用户登录 新用户注册
[图文]Struts,MVC的一种开放源码实现用这种 servlet 和 JSP 框架管理复杂的大型网站(5)           ★★★★ 【字体:
Struts,MVC的一种开放源码实现用这种 servlet 和 JSP 框架管理复杂的大型网站(5)
作者:unknown 文章来源:IBM中国 点击数: 更新时间:2005-9-5
Struts,MVC的一种开放源码实现用这种 servlet 和 JSP 框架管理复杂的大型网站(5)

业务构建注释

我用 Ant 构建项目,并用 JUnit 运行单元测试。business.zip 包含构建业务项目所需的一切,当然 Ant 和 JUnit 除外。这个包脚本将构建类,运行单元测试,创建 Java 文档和 jar 文件,最后将所有这些内容压缩到一个 zip 文件中发送给客户。只要对 build.xml 作一些修改,您就可以将它部署到其他平台上。 Business.jar 位于 Web 的下载部分,因此,您并非必须下载并构建这个业务包。

Web 项目

第二个项目是用 Struts 开发的一个 Web 应用程序。您将需要一个符合 JSP 1.1 和 Servlet 2.2 规范的容器。最快的入门方法是下载并安装 Tomcat 3.2(请参阅 参考资源 )。直到有 Struts 的 1.0 发行版之前,我建议您从 Jakarta 项目获得最新的版本(请参阅 参考资源 )。这对我来说是个大问题,我不能确保我的 Web 项目样例能与您下载的 Struts 一起工作。Struts 仍在不断变化,所以我不得不经常更新我的项目。在本项目中,我使用的是 jakarta-struts-20010105.zip。图 8 显示了此 Web 项目的结构。如果您已安装了 Ant,则运行这个版本将创建一个称为 joinStruts.war 的 war 文件,您随时可以部署这个文件。

图 8. Web 项目的结构
Web project layout

清单 4 显示了转换后的 JSP 文件,称为 joinMVC.jsp 。这个文件从最初的 50 行变为 19 行,并且现在不含任何 Java 代码。从网页设计人员的角度来看,这是个巨大的改进。

清单 4. joinMVC.jsp -- 再访简单的 JSP
<%@ page language="java" %>
<%@ taglib uri="/WEB-INF/struts.tld" prefix="struts" %>
<%@ taglib uri="/WEB-INF/struts-form.tld" prefix="form" %>
<html>
<head>
<title><struts:message key="join.title"/></title>
</head>
<body bgcolor="white">

<form:errors/>
<h3>Enter your email to join the group</h3>

<form:form action="join.do" focus="email" >
<form:text property="email" size="30" maxlength="30"/>
<form:submit property="submit" value="Submit"/>
</form:form>

</body>
</html>

网页的变化

下面是使用 Struts 标记库之后所发生变化的列表:

  • Import
    <%@ taglib uri="/WEB-INF/struts.tld" prefix="struts" %>
    用于 Java 代码的 <%@page import? 已被替换为用于 Struts 标记库的 <%@ taglib uri? 。
  • 文本
    <struts:message key="join.title"/>
    资源属性文件包含 join.title 的文本。在本例中,ApplicationResources 属性文件包含这个名值对。这使字符串更易于查看和国际化。
  • 错误
    <form:errors/>
    ActionServlet 或 ActionForm 构建要显示的错误消息。这些错误消息也可以包含在属性文件中。ApplicationResources 也提供了一种格式化错误的方法,即设置 error.header 和 error.footer 。
  • HTML 表单
    <form:form action="join.do" focus="email" >
    • JSP <form> 标记和属性替代了 HTML <form> 标记和属性。 <form action="join.jsp" name="join"> 已更改为 <form:form action="join.do" focus="email" > 。
    • HTML <input> 标记已替换为 <form:text/> 。
    • HTML <submit> 标记已替换为 <form:submit/> 。

模型 -- 会话状态

JoinForm 扩展了 ActionForm 并包含表单数据。本例中的表单数据只有电子邮件地址。我已为电子邮件地址添加了一个写方法和读方法,以供框架访问。为了便于说明,我重写了 validate() 方法,并使用了 Struts 的跟踪功能。Struts 将创建 JoinForm 并设置状态信息。

模型 -- 业务逻辑

如前所述, Action 是控制器和实际业务对象之间的接口。 JoinAction 包装了对 business.jar 的调用,这些调用最初在 join.jsp 文件中。 JoinAction 的 perform() 方法在清单 5 中列表。

清单 5. - JoinAction.perform()
public ActionForward perform(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException {
// 抽取我们将会用到的属性和参数
JoinForm joinForm = (JoinForm) form;
String email = joinForm.getEmail();

ActionErrors errors = new ActionErrors();

// 存储输入....
try {
business.db.MailingList.AddEmail(email);
} catch (Exception e) {
// 记录日志,打印栈

// 将错误回显给用户
errors.add("email",new ActionError("error.mailing.db.add"));
}

// 如需任何消息,请将指定的错误消息键保存到
// HTTP 请求中,以供 <struts:errors> 标记使用。
if (!errors.empty()) {
saveErrors(request, errors);

// 返回到初始表单
return (new ActionForward(mapping.getInput()));
}

// 将控制权转交给 Action.xml 中指定的 'success' URI
return (mapping.findForward("success"));
}

注: perform() 返回一个称为 ActionForward 的类,该类通知控制器下一步该执行什么操作。在本例中,我使用从控制器传入的映射来决定下一步的操作。

(未完待续)
 
收集录入:华夏总编辑    责任编辑:华夏总编辑 
  • 上一篇收集:

  • 下一篇收集:
  • (只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
    最新热点资讯
    最新推荐资讯
    相关收集
  • Java程序员认证模拟题及详细分析…

  • Java程序员认证模拟题及详细分析…

  • Java程序员认证模拟题及详细分析…

  • Java程序员认证模拟题及详细分析…

  • SUN认证Java2程序员考试(SCJP) 试…

  • JAVA图形设计卷I AWT 第一章绪论

  • SCJP考试心得

  • SUN认证JAVA程序员考试大纲

  • 答疑解惑:一道SCJP考题

  • Test of the Java Skill(4)

  • 最新推荐软件
    最新推荐视频
    最新推荐动画

    Copyright @ 2005 77169.Net Inc. All rights reserved. 华夏黑客同盟 版权所有
    北京市电信通提供网络带宽

    mailto:webmaster@77169.net
    咨询QQ号:836982 / 59280880
    联系站长 有事给站长留言!
    热线电话: 86-10-63643422/63643423
    京ICP证041431号