前面两篇通过手工写代码,手工配置struts-config.xml文件的方法来开发了一个最简单的struts项目,通过手工的方式旨在学习底层原理细节。当熟悉了以后,我们就不需要再通过纯手工的方式来开发struts了,MyEclipse为我们提供了便捷的集成开发工具。 
下面就介绍通过MyEclipse自动开发struts的步骤。这里仍然使用登录验证系统来说明。

1.建立web工程

首先要建立web工程,这是所有项目的第一步。这里我新建项目StrutsLoginByTool


2.引入struts开发包

(1)右键该项目,依次点击MyEclipse->Project Facets[Capabilities]->Install Apache Struts(1.x) Facet(该步骤针对MyEclipse2015 Stable 2.0版本,不同版本步骤可能略有出入)。如图:

(2)在跳出来的对话框中选择struts 1.3版本。

(3)在接下来跳出来的对话框中选择struts-config.xml文件的路径,选择URL Pattern等一些配置。

(4)点击finish,就会自动地引入struts开发包和自动生成struts-config.xml文件,并完成一些配置。现在的项目目录如下:

可以看到,它自动引入的struts开发包是1.3.8版本的,并且生成了struts-config.xml文件。

在这一步之后,MyEclipse帮我们自动配置了struts的开发环境,我们已经可以在项目中使用struts来开发了。 
我们依然可以按照手工的方式来开发ActionForm、Action,以及在之后的过程中手工配置struts-config.xml文件。但是MyEclipse的强大之处就在于这些工作它也完全可以自动完成,简化了我们手工的麻烦。

下面我们采用纯自动的方式来开发。


3.开发login.jsp

开发简单的登录页面:login.jsp,该jsp依然放在WEB-INF目录下,通过index.jsp转发到该页面。与上篇一样,核心代码如下:

<body>
<form action="??" method="post">
UserName:<input type="text" name="username"/><br><br>
Password:<input type="password" name="password"/><br><br>
<input type="submit" value="Login"/>
</form>
</body>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

这里action提交的地址还不知道,暂时先放在这里。两个表单组件的名字分别为username和password,这两个名字在struts中很关键,后面填充表单的时候要用到。


4.开发welcome.jsp和error.jsp

顺手把welcome.jsp和error.jsp也一并写出来,用于之后登陆验证后的跳转目标页面。


5.开发ActionForm和Action

(1)我们打开struts-config.xml文件,该文件可以采用DesignSource两种方式编写,Design模式就是我们自动开发ActionForm和Action的窗口,而Source模式让我们直接编辑源代码。

(2)在Design模式下的空白处点击右键,选择New,可以看到它可以新建Action,可以新建Form等

(3)我们先新建Form,创建UserForm,如下图:

(4)再创建和UserForm关联的Action,名字为LoginAction,如下图:

(5)完成上述步骤之后,我们可以看看MyEclipse帮我们完成哪些工作:

<1>看看项目目录,它自动生成了UserForm和LoginAction的代码:

<2>再看struts-config.xml文件,在Design模式下,可以看到它多出了一个LoginAction的视图,在Source模式下可以看到源代码,它已经帮我们配置好了UserForm和LoginAction以及它们两者之间的关联。


6.在struts-config.xml的Design模式下配置跳转关系

(1)将login.jsp、welcome.jsp和error.jsp都拖动到struts-config.xml的视图上,如下图:

(2)选择左侧的Add Connection工具,通过连线配置login.jsp到LoginAction的input关系,配置LoginAction到welcome.jsp和error.jsp的转发关系。对于到welcome.jsp,转发的判断名字为ok,而到error.jsp的转发判断名字为error

(3)最后形成的关系图如下:

(4)我们可以看看struts-config.xml的源代码,它在LoginAction中又给我们自动配置了forward关系:


7.在LoginAction的excute方法中添加业务逻辑

判断用户验证是否通过,如下:

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UserForm userForm = (UserForm) form;// TODO Auto-generated method stub
if("123".equals(userForm.getPassword())){
return mapping.findForward("ok");
}else {
return mapping.findForward("error");
}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

8.别忘了在login.jsp中将表单的action地址补充上去,我们的LoginAction的path为/login,所以应该写上/StrutsLoginByTool/login.do

<body>
<form action="/StrutsLoginByTool/login.do" method="post">
UserName:<input type="text" name="username"/><br><br>
Password:<input type="password" name="password"/><br><br>
<input type="submit" value="Login"/>
</form>
</body>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

9.测试

运行该项目,发现跟手工写代码配置的一样,运行正常。

可以看到我们只写了3个简单的jsp页面,和一点简单的业务逻辑代码。而其他的全部都是MyEclipse帮我们做的,生成Action和ActionForm,配置struts-config.xml等。

所以呢,struts简化了我们手工书写和配置跳转关系的麻烦,让我们专注于业务逻辑的书写。当然这么一个简单的登录验证只是一个非常小的例子,而项目真正复杂的地方正是在于业务逻辑。

这个例子旨在介绍通过集成工具开发struts的一般流程。



为什么说struts是一个web框架?

struts横贯了Web层,因为struts接管了Web层的组件,包括jsp,表单,Action等,所以把Struts称之为Web层框架,但是Struts并没有影响下面的业务逻辑层、DAO层和数据库层,这些层次将来会有其他的框架接管。

Struts1.3——使用MyEclipse集成工具开发Struts的更多相关文章

  1. MyEclipse 集成 Gradle开发环境

    一.上Grandle官网下载Gradle,地址:http://www.gradle.org/downloads 如果只是运行只下载gradle-2.6-bin.zip 就可以了,如果为了扩展开发的话就 ...

  2. HUDSON(Java开发的一种持续集成工具)

    Hudson是Jenkins的前身,是基于Java开发的一种持续集成工具,用于监控程序重复的工作,包括: 1.持续的软件版本发布/测试项目. 2.监控外部调用执行的工作. Hudson的特性 1.易于 ...

  3. 持续集成工具Jenkins学习总结

    概述 持续集成(Continuous Integration,简称CI)是一种软件开发实践,团队开发人员每次都通过自动化的构建(编译.发布.自动化测试)来验证,从而尽早的发现集成错误.持续集成最大的优 ...

  4. (转)持续化集成工具CruiseControl.NET

    持续化集成工具CC.NET[ 引言: 团队开发需要 进行集中的项目文件管理与有效的协调,我们采用源代码管理工具协助我们管理,卓有成效.限定重要文件的访问权限.使用悲观锁杜绝成员同时编辑同一份文件. 不 ...

  5. 集成产品开发-IPD简介

    内训IPD流程,听完后,觉的流程的力量很强大,可以高效的团队几千上万人的研发团队,来正确地为同一个目标前进.因为讲解者是从华为出来的,所以,相关的案例分析以及理解,都是以华为研发为模板来讲解的.这没错 ...

  6. 用持续集成工具Travis进行构建和部署

    用持续集成工具Travis进行构建和部署 用持续集成工具Travis进行构建和部署 摘要:本文简单说明了如何使用持续集成工具Travis进行构建和部署的过程. 1. 概述 持续集成(Continuou ...

  7. ScalaPB(0): 找寻合适的内部系统微服务集成工具

    前一段时间我们探讨了SDP的一个基于集群的综合数据平台解决方案,由多种数据库组成,包括:JDBC, Cassandra 及MongoDB.其中Cassandra和MongoDB属于分布式数据库,可以在 ...

  8. 系统设计与架构笔记:ETL工具开发和设计的建议

    最近项目组里想做一个ETL数据抽取工具,这是一个研发项目,但是感觉公司并不是特别重视,不重视不是代表它不重要,而是可能不会对这个项目要求太高,能满足我们公司的小需求就行,想从这个项目里衍生出更多的东西 ...

  9. 持续集成工具之Jenkins

    Jenkins是一个很好的持续集成工具,不光可以帮助开发进行自动打包,自动验证升级和安装,也可以帮助测试人员定时执行测试任务,或者在开自动打包安装之后自动执行测试任务,实现打包-安装-测试一条线服务, ...

随机推荐

  1. TypeScript躬行记(5)——类型兼容性

    TypeScript是一种基于结构类型的语言,可根据其成员来描述类型.以结构相同的Person接口和Programmer类为例,如下所示. interface Person { name: strin ...

  2. BZOJ 2122 [分块+单调栈+二分](有详解)

    题面 传送门 给定序列d和lim.假设有一个初始价值\(x_0\),则经历第i天后价值变为\(min(x_0+d[i],lim[i])\),记\(f(i,j,x_0)\)表示以初始代价x0依次经过第i ...

  3. HTML学习笔记(基础部分)

    一.基本概念 1.HTML:超文本标记语言(HyperText Markup Language)是一种用于创建网页的标准标记语言. 2.HTML文档的后缀名:.html 或 .htm 3.标签:由尖括 ...

  4. 图片查看器(类似于QQ,另外又加了JARA的下方的图片缩略导航图)

    源码地址:https://gitee.com/yolanda624/coffer/tree/master/src/components/a-photo-view

  5. WPF 的二维绘图(二)——几何图形Geometry

    <本文转自同行> 在WPF的DrawingContext对象中,提供了基本的绘制椭圆和矩形的API:DrawEllipse和DrawRectangle.但是,这些是远远不够用的,我们在日常 ...

  6. ng2-file-upload插件在ionic3中的使用方法

    本文主要说明在ionic3中使用ng2-file-upload插件,上传多种类型文件(图片.word.excel.ppt.mp4等)的使用方法. 1.html代码: <button ion-bu ...

  7. 虚拟机复制的linux无法联网,解决Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.

    一.问题描述 OS:centos 原因是拷贝虚拟机造成的. 使用vmworkstation打开虚拟机的时候,要选择copy而非move. 二.解决描述 网络上解决步骤各异,其实就一句话.只要保证vmw ...

  8. tensorflow 版本的mask rcnn 实践

    1. https://www.jianshu.com/p/27e4dc070761 (tensorflow object detection API/Mask RCNN)

  9. 回收子进程——wait/waitpid 与 信号机制

    孤儿/僵尸进程——回收子进程 参考博客:https://blog.csdn.net/qq_35396127/article/details/78725915 :https://www.cnblogs. ...

  10. java 双重校验性volatile

    A a = new A(); 上述可拆分为三个步骤: -1.分配地址 -2.初始化对象 -3.将 变量a 指向这个地址 在准时制生产方式(Just In Time简称JIT)时,可能发生指令重排: 在 ...