首页 > 代码库 > Struts2开发环境搭建
Struts2开发环境搭建
前言:很多时候我们只在意自己学到了多少,却不在意究竟学扎实了多少,当项目进行很久的时候发现很多基础知识忘得也差不多了,甚至连一个项目的搭建也会了,写下笔记供自己日后复习,也供大家参考和学习。
Struts2介绍
Struts2由webwork2基础发展而来,与struts一样属于Mvc框架
与struts1比较的优点:
1. 软件设计上不像struts1与servletAPI和strutsAPI有着紧密的耦合,struts2的应用可以不依赖于servletAPI和strutsAPI。Sturts2的这种设计属于无入侵式设计,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.jar:struts2框架核心类库
ii. commons-fileupload-1.3.2.jar:文件上传组件
iii. freemarker-2.3.23.jar:struts中UI组件模板使用freemarker编写
iv. commons-lang3-3.4.jar:ASF出品的日志包,用来支持log4j和jdk1.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) StrutsPrepareAndExecuteFilter的init()会读取类路径下默认的配置文件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---->
Struts2的action搜索顺序
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的配置类似于struts1的forward
2) 浏览器重定向无法访问web-inf下的页:详情 http://ykyfendou.iteye.com/blog/2094317
3) Result常用类型:dispatch、redirect、redirectAction、plainText
4) 中文转码与解码:
a) URLEncoder.encode(strTest, "utf-8")
b) URLDecoder.decode(strTest,"UTF-8");
5) 全视图:当前包下有多个action返回同一个页面
Struts2开发环境搭建