 Struts2官方版是一个以Webwork的设计思想为核心,吸收struts1的优点的web框架,struts2可以说struts2是struts1和Webwork结合的产物。
Struts2官方版是一个以Webwork的设计思想为核心,吸收struts1的优点的web框架,struts2可以说struts2是struts1和Webwork结合的产物。
| 相关软件 | 版本说明 | 下载地址 | 
|---|---|---|
| JDK | v1.6 | 查看 | 
| CiteSpace | 中文版 | 查看 | 
| IntelliJ IDEA2019 | 官方版 | 查看 | 
| ZGRViewer | v0.8.2 | 查看 | 
软件亮点
POJO表单及POJO操作 - Struts2 去除掉了Struts框架中的Action Forms部分。在Struts2框架下,你可以用任何一POJO来接收表单输入,同样的,你可以把任一POJO视为一个Action类。
标签支持 - Struts2 改进了标签表单,而新的标签可让开发人员减少代码编写量。
AJAX支持 - Struts2 被认可接收进Web 2.0技术,并创建了功能非常类似于标准的Struts2 标签的AJAX标签,把AJAX支持整合进其结果中。
易于整合 - Struts有多种整合方式可使用,现在与其他类型的框架,如Spring、Tiles、SiteMesh之类的,整合更为容易了。
模板支持 - 支持使用模板生成视图。
插件支持 - 有大量的插件可用于Struts2,而使用插件可以增强和扩大Struts2 核心行为。
软件特色
性能分析 - Struts2 为调试和配置应用程序提供综合的性能分析,此外,Struts也以嵌入调试工具的形式提供集成调试。
易于修改标签 - 在Struts2 中,可使用Freemarker的模板对标签标记进行调整,而修改标签不需要JSP或是Java知识,基本的HTML、XML和CSS知识就足够了。
促进减少配置 - Struts2 使用各种设置的默认值促进减少配置,而你不需要再配置什么除非是偏离了Struts2 设定的默认设置。
视图技术 - Struts2 为多种视图选项(JSP、Freemarker、Velocity、XSLT等)提供支持。
	 
 
MVC架构
模型(Model)-视图(View)-控制器(Controller),通常简称MVC,是一种开发web应用程序的软件设计模式。该软件设计模式由以下三部分组成:
模型——属于软件设计模式的底层基础,主要负责数据维护。
视图——这部分是负责向用户呈现全部或部分数据。
控制器——通过软件代码控制模型和视图之间的交互。
MVC普及的原因在于它区分了应用程序的逻辑层和用户界面层,并支持开发关注点的分离。在MVC模式下,控制器接收了所有来自应用程序的请求后,调用模型去准备视图所需要的数据,然后视图使用由控制器提供的数据最终生成一个可视的响应。MVC的抽象概念可通过以下图形进行表述:
模型
模型主要负责管理应用程序的数据,它通过响应视图的请求和控制器的指令来更新自身的数据。
视图
通过控制器的指令触发所展现的一种特殊的数据格式。它们是基于像JSP、ASP、PHP之类模板系统的脚本,较易与AJAX技术进行整合。
控制器
控制器负责响应用户输入并执行数据模型对象的交互。控制器在接收、确认输入后执行修改数据模型状态的业务操作。
Struts2是一个以MVC为基础的框架。在接下来的章节,让我们看看如何在Struts2中使用MVC。
使用方法
我用的是struts2.2.1.1-all.zip(不管用struts2的哪个版本,道理都一样,找对应的包就行了)
例如你建一Web Project,名为Struts2 导入项目所需要的jar包,放入/Struts2/WebRoot/WEB-INF/lib下面
方法一:
在struts2存放目录(以我的举例说明)
F:JavaWeb教程ssh-jarstruts-2.2.1.1-allstruts-2.2.1.1lib下面找到以下包
commons-fileupload-1.2.1.jar//文件上传时用的,为了以后用到,最好加入
commons-io-1.3.2.jar//同上
commons-logging-1.0.4.jar
freemarker-2.3.16.jar
javassist-3.7.ga.jar
ognl-3.0.jar
struts2-core-2.2.1.1.jar
xwork-core-2.2.1.1.jar
共8个包,将其复制到/Struts2/WebRoot/WEB-INF/lib下面
方法二:(不用复制,导入法)
(1).右击项目名称Struts2-->Build Path-->Configure Build Path...-->打开一对话框
(2).选择左边的"Java Build Path"选项-->选择Libraries选项卡-->Add External JARs-->去寻找 F:JavaWeb教程ssh-jarstruts-2.2.1.1-allstruts-2.2.1.1lib下面的指定的jar包导入即可
常见问题
如何使用拦截器?
让我们看看如何在我们的“Hello World”程序中使用一个已经存在的拦截器。我们将首先使用timer拦截器,目的是测量执行action方法所需的时间。同时我们使用params拦截器,目的是将请求参数发送给action。你可以尝试不在你的例子中使用这个拦截器,然后你会发现name属性没有被设置,因为参数无法发送给action。
我们可以保留HelloWorldAction.java,web.xml,HelloWorld.jsp和index.jsp文件,因为它们已在Hellow World示例一章中创建过了,然后让我们参照下面修改struts.xml文件给它添加拦截器:
	 
 
右键单击项目名称,然后单击“Export”>“WAR File”创建WAR文件。然后在Tomcat的webapps目录中部署这个WAR文件。最后,启动Tomcat服务器并尝试访问URL http://localhost:8080/HelloWorldStruts2/index.jsp。结果如下图所示:
 
 
现在,在给定文本框中输入任意单词,然后单击Say Hello按钮执行定义的action。如果你去查看生成的日志,会看到以下文本:
	 
 
这里的最后一行是由timer拦截器生成的,是表示ation总共需要109ms来执行。
 
         CiteSpace  中文版v5.7
                                        CiteSpace  中文版v5.7
                                     Java 7 Update 67  v7.0
                                        Java 7 Update 67  v7.0
                                     Myeclipse2021  最新版 v2021
                                        Myeclipse2021  最新版 v2021
                                     Java SE Development Kit  v24.0.2
                                        Java SE Development Kit  v24.0.2
                                     Resource Hacker  最新版 v5.2.8
                                        Resource Hacker  最新版 v5.2.8
                                     IntelliJ IDEA2021  最新版 v2021
                                        IntelliJ IDEA2021  最新版 v2021
                                     
     
                                         
                                         
                                         
                                         
                                         
                                         
                                         
                                             
                                             
                                             
                                             
                                             
                                             
                                             
                                 
                                 
                                 
                                 
                                 
                                 
                                