Struts2搭建(2.1.8一前)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Struts2搭建(2.1.8一前)一.Struts2概述众所周知,Struts2是以Webwork2作为基础发展出来,WebWork是一个强大的基于Web的MVC框架,它构建在一个命令模式框架XWork之上。WebWork真正的优势在于它强调简洁和协作能力的根本理念.使用WebWork将有助于最小化代码并允许开发人员更多的关注业务逻辑和建模而不是诸如编写Servlet之类的事情。Struts2和webwork2基本上一样的,核心基本没改,部分包名进行了修改。Struts2对webwork的改进之处如下:1.webwork.properties文件中变量现在可以配置在下列文件:struts-default.xmlstruts-plugin.xml(在每个plugin的jar包中)struts.xml(用constant元素)struts.properties(没有默认文件,可选,与webwork.properties文件相似,每个项目可以有这个文件)Wweb.xml2.Struts2的配置文件加入了对通配符的支持。二.Struts1与Struts2的对比根据Struts2开发组的文章可以得知,Struts2与Struts1的不同之处如下表所示:三.Struts2实例下面我们通过实例来学习一下Struts2的使用。通过本实例的学习,我们将会对struts2的表单以及表单验证有一个初步的认识、了解struts2的配置以及初探Struts2的本地化输出。1.实例说明本例是Struts2的简单实例,通过本工程的学习,我们将会对struts2的表单以及表单验证有一个初步的认识、了解struts2的配置以及初探Struts2的本地化输出。2.编码准备1)包的引入在MyEclipse或NetBeans中建立web工程,将所需的包放入WebRoot/lib目录中,本实例所需的包有:commons-logging-1.1.jarfreemarker-2.3.8.jarognl-2.6.11.jarstruts2-core-2.0.8.jarxwork-2.0.3.jar这些包在struts-2.0.8-all\struts-2.0.8\lib目录下都可以找到,请读者自行下载。2)web.xml的配置要使struts能正常工作,需修改web.xml的内容,为其增加struts2的FilterDispatcher,修改后的web.xml的内容如下:3)建立源码目录和jsp存放目录在src目录下建立example文件夹,用于存放本实例的java文件等。在WebRoot文件夹下建立子文件夹example,用于存放本工程的jsp文件。3.编码1)Welcome.jsp和Login.jsp的编写首先我们建立Welcome.jsp,该文件包含两个链接,点击“登录”链接后跳转到登录信息输入页面,点击“注册”按钮跳转到注册页,为了学习struts2配置中的通配符使用,我们暂不实现注册功能。Welcome.jsp的代码如下:在该页面的顶部,我们需要将struts2的标签库引入,语句为:在该页面,主要用到struts2的由此可知使用该标签时,struts2会自动为我们带上下文路径,对于加了属性action的点击“登录”链接后,跳转到Login.jsp页面,该页包含一个登录表单,让用户输入用户名和密码信息,用户点击提交按钮,跳转到指定的Action——Login进行处理。Login.jsp的内容如下:该页用到Struts2的表单标签2)配置文件struts.xml和example.xml在上述jsp页面,我们需跳转到两个Action地址,需在struts2的配置文件中配置,因当工程变大时,一个庞大的struts2的配置极难维护,建议按包路径分开配置文件,所以本实例除了struts.xml配置文件外,还新增了一个额外的配置文件example.xml。该文件在struts.xml中引用。struts.xml放在src目录下,该文件的内容如下:可看到该文件通过3)Login和ExampleSupport类以及验证配置类Login-validation.xml的编写在配置文件example.xml中,定义了两个Action,下面我们用代码来实现这两个Action首先让我们来看看ExampleSupport这个Action,这个Action不做任何操作,集成自ActionSupport,是本工程的各Action类的基类,该类的代码如下:packageexample;importcom.opensymphony.xwork2.ActionSupport;publicclassExampleSupportextendsActionSupport{}接着让我们来看看Login这个Action,该类继承自ExampleSupport类,该Action需实现的业务逻辑如下:a)当用户名(username)或密码(password)有一者或两者为空时,登录不成功,跳转到登录信息输入页面;b)当用户名(username)和密码(password)都不为空时,登录成功,跳转到主菜单页。对于用户名和密码的验证,我们可以先考虑在Login类中用代码实现的方式,此时该类的代码如下:当工程变得愈发复杂时,这一小段一小段验证代码将会变得难以维护,出于此原因,我们可以考虑采用struts2提供的验证机制来实现。在src目录下建立实现验证的xml文件Login-validation.xml,为LoginAction中的username和password属性增加非空验证,验证配置如下:当验证未通过时,将不会进入LoginAction中的execute方法,此时可删除掉Login这个Action中的验证内容,该类的execute方法直接跳转到SUCCESS即可,修改后的代码略。4)本地化输出——资源文件package.properties为了本地化的输出验证错误信息,我们可以将参数信息和错误信息放入资源文件中,资源文件package.properties位于src/example目录下,内容如下:requiredstring=${getText(fieldName)}不能为空.password=密码username=用户名Missing.message=该部分尚未构建,请稍候访问...在src/example目下下建立对应的中文资源文件package_zh_CN.properties,为了避免中文乱码问题,我们编写一个批处理文件code.bat来对package.properties进行编码处理,主要用到native2ascii命令,其内容如下:delpackage_zh_CN.propertiescopypackage.propertiespackage_zh_CN.properties.gbknative2ascii-encodingGBKpackage_zh_CN.properties.gbkpackage_zh_CN.propertiesdelpackage_zh_CN.properties.gbkdel*.bak运行该批处理文件,可在package_zh_CN.properties中可看到编码后的资源文件信息,如下:requiredstring=${getText(fieldName)}\u4e0d\u80fd\u4e3a\u7a7a.password=\u5bc6\u7801username=\u7528\u6237\u540dMissing.message=\u8be5\u90e8\u5206\u5c1a\u672a\u6784\u5efa\uff0c\u8bf7\u7a0d\u5019\u8bbf\u95ee...5)Register.jsp和Missing.jsp的编写在2中的example.xml中,我们配置了通配符映射,在Welcome.jsp中,我们使用注册其中的Register在example中找不到相关映射,于是在用户点击“注册”按钮时,将映射到通配符所映射的Action:example.ExampleSupport.而后跳转到Register.jsp页面,其代码如下:四.总结到此为止,我们的实例已构建完,可通过浏览器访问:看到我们的劳动成果。下面总结一下我们在该实例中学到的东西。常用的一些标签的使用在本实例中,我们学习了表单数据的验证本文描述了一个简单的表单的数据非空验证。3.本地化输出错误提示信息在验证失败时,用资源文件来输出错误提示信息。4.Strut2配置文件中通配符的使用对于某些地址,我们可以使用在struts2的配置通配符来使其映射到某个Action中去。

1 / 8
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功