首页 > 代码库 > Struts2开发环境搭建

Struts2开发环境搭建

前言:很多时候我们只在意自己学到了多少,却不在意究竟学扎实了多少,当项目进行很久的时候发现很多基础知识忘得也差不多了,甚至连一个项目的搭建也会了,写下笔记供自己日后复习,也供大家参考和学习。

 

Struts2介绍

Struts2webwork2基础发展而来,与struts一样属于Mvc框架

struts1比较的优点:

1.         软件设计上不像struts1servletAPIstrutsAPI有着紧密的耦合,struts2的应用可以不依赖于servletAPIstrutsAPISturts2的这种设计属于无入侵式设计,sturts1属于入侵式的;

2.         Struts2提供了拦截器,通过拦截器进行aop编程,实现权限控制功能;

3.         Struts2提供了类型转换器,可以把特殊的参数类型转换为我们需要的类型,struts1中必须向底层BeanUtils注册类型转换器才行;

4.         Struts2支持多种表现层技术,如:jsp,freemarker,velocity等;

5.         Stuts2可对指定方法进行校验,stuts1的检验是对于action中的所有方法校验;

6.         提供了全局范围、包范围和action范围的国际化资源文件管理实现。

Struts2开发环境搭建

1.         找到struts2所需jar

1)         下载地址:http://struts.apache.org/download.cgi#struts25101

2)         Jar包版本选取方:http://jingyan.baidu.com/article/72ee561a6eac60e16038df7f.html

常用jar的介绍:

                         i.              struts2-core-2.5.10.1.jarstruts2框架核心类库

                       ii.              commons-fileupload-1.3.2.jar:文件上传组件

                      iii.              freemarker-2.3.23.jarstrutsUI组件模板使用freemarker编写

                      iv.              commons-lang3-3.4.jarASF出品的日志包,用来支持log4jjdk1.4+的日志记录

                       v.              ognl-3.1.12.jar:对象导航图语音,用于读写对象的属性

2.         编写struts2配置文件

通常我们很容易忘记struts2的配置文件的内容,可以由一下几种方法找到

1)         写好的项目中copy

2)         Struts2文档中copy

3)         struts2-core中寻找:将struts2-core解压后,找到 \struts-2.5.10.1-min-lib\struts-2.5.10.1\lib\struts2-core-2.5.10.1\ struts-default.xml

技术分享

3.         web.xml加入struts2的启动项:同样可以在lib中找到相关配置

\struts-2.5.10.1-all\struts-2.5.10.1\apps\struts2-showcase\struts2-showcase\WEB-INF\web.xml

技术分享

1)         StrutsPrepareAndExecuteFilterinit()会读取类路径下默认的配置文件struts.xml完成初始化操作

2)         Struts2读取到struts.xml后,以javaBenn的形式存放在内存中,以后struts2对用户的每次请求处理将使用内存数据,而不是每次读取struts.xml

Struts2配置文件属性解读

技术分享

1)         Package:用来管理包,与java类包相似,用于管理一组业务功能相关的action

2)         Package-name:配置包时必须配置那么属性,可任意取名,但必须唯一,若其他包要继承该包,必须通过该属性进行引用;

3)         Package-namespace:命名空间à作为该包下action访问路径的一部分,可不配置,默认为“”空字符串

4)         通常每个包都应该继承struts-default,struts2的很多核心功能都是通过拦截器实现,该包下定义了这些拦截器和result类型

5)         包还可以通过abstract定位为抽象包,抽象包不可定义action

Struts2.xml文件输入不提示设置

很多朋友在struts2配置文件中编写时,没有输入提示,这时候就需要检查你的网络是否连接好了

技术分享

此时我们可以收到给eclipse添加该dtd文件

1)         struts-2.5.10.1-all\struts-2.5.10.1\src\core\src\main\resources\struts-2.5.dtd:

解压好的strtus2包中可以找到该dtd文件 

2)         preferences---->xml catalog---->

技术分享

Struts2action搜索顺序

1). 例如请求路径为:http://8080/test/path1/path2/path3/testAction

2). path3逐级往上搜索,直到test命名空间下找到testAction为止

3). 若命名空间下没有要找的action,会搜索默认命名空间“”

Action的默认值

1)         如果没有为action指定class,默认为ActionSupport

2)         如果没有为action指定methead,默认问execute()

3)         如果没有为action指定视图,默认为success

Result常用类型

1)         Result的配置类似于struts1forward

2)         浏览器重定向无法访问web-inf下的页:详情  http://ykyfendou.iteye.com/blog/2094317

3)         Result常用类型:dispatchredirectredirectActionplainText

技术分享

4)         中文转码与解码:

a)         URLEncoder.encode(strTest, "utf-8")

b)         URLDecoder.decode(strTest,"UTF-8");

5)         全视图:当前包下有多个action返回同一个页面

技术分享

 

Struts2开发环境搭建