共计 1737 个字符,预计需要花费 5 分钟才能阅读完成。
struts2 长处
- 与 Servlet API 耦合性低。无侵入式设计
- 提供了拦截器,利用拦截器能够进行 AOP 编程,实现如权限拦挡等性能
- 反对多种体现层技术,如:JSP、freeMarker、velocity 等
- 输出校验能够对指定办法进行校验,解决了 struts1 短暂之痛
- 提供了全局范畴、包范畴和 Action 范畴的国际化资源文件治理实现
搭建 struts2 开发环境
1. 导包
- struts2-core-2.x.x.jar:外围类库
- xwork-2.x.x.jar:XWork 类库,struts2 在其上构建
- ognl-2.6.x.jar:对象图导航语言,struts2 通过其读写对象属性
- freemarker-2.3.x.jar:struts2 的 UI 标签的模板应用 FreeMarker 编写
- commons-logging-1.1.x.jar:ASF 出品的日志包,struts2 应用这个日志包来反对 log4j 和 jdk1.4+ 的日志目录
- commons-fileupload-1.2.1.jar:文件上传组件,2.1.6 后必须退出此文件
2. 配置 web.xml 文件
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
- struts2 框架通过 Filter 启动
- StrutsPrepareAndExecuteFilter 的 init() 办法中将会读取类门路下默认的配置文件 struts.xml 实现初始化操作
- struts2 读取到 struts.xml 的内容后,以 JavaBean 模式寄存在内存中,当前 struts2 对用户的每次申请解决将应用内存中的数据,而不是每次都读取 struts.xml 文件
3. 编写 Action 类,这是咱们的逻辑控制器
package com.liuyong666.action;
public class HelloWorldAction {
private String msg;
public String getMessage() {return msg;}
public String execute(){
msg = "我的第一个 struts2 利用";
return "success";
}
}
4. 配置 src/struts.xml,外围配置文件中配置 action
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="liuyong666" namespace="/test" extends="struts-default">
<action name="helloworld" class="com.liuyong666.action.HelloWorldAction" method="execute" >
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
</package>
</struts>
- 在 struts2 中应用包治理 Action
- 配置包时必须指定 name 属性,能够任意名,但必须惟一
- namespace 定义该包的命名空间,为拜访该包下 Action 的门路的一部分,如上边例子的拜访门路为:/test/helloworld.action。也能够不配置
- 继承 struts-default 包,该包领有 struts2 提供的外围性能,领有各种拦截器。
- 包可通过 abstract=”true” 定义为形象包,形象包中不能蕴含 action
正文完