1 创建web项目
2 导入struts2中所需要的包.
struts2-core-2.2.1.1.jar struts2中的核心包
xwork-core-2.2.1.1.jar xwork 也是一个web框架, webwork 是基于xwork的..
commons-fileupload-1.2.1.jar commons-io-1.3.2.jar 处理流和文件上传
freemarker-2.3.16.jar 模板引擎的处理框架, 将jsp或者其他的模板高效生成html..
ognl-3.0.jar 相当于el和jstl , 当时比这里牛多了...
javassist-3.7.ga.jar 主要是多java类的字节码文件进行处理
3、配置strust2在当前的web项目中
在web.xml中配置struts2所需的核心过滤器
struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
struts2
/*
4 写处理请求所需要的Action
public class HelloAction {
public void hello(){
System.out.println("HelloAction....hello Method");
}
}
5、在struts.xml中配置上面的Action.
struts.xml 放在classpath的根目录下面, struts.xml的名字是固定的..
根据约束文件写struts.xml, 在struts.xml中如果不会提示节点,那么需要eclipse关联dtd
6、执行Action.
http://localhost:8080/app_name/package_namespace/action_name
每次请求都会创建一个Action的对象, 存在线程安全性..
7、structs.xml中的一些配置:
8、使用拦截器:
定义:
<interceptors>
<interceptorname="params"class="com.opensymphony.xwork2.interceptor.ParametersInterceptor"/>
interceptors>
调用:
<actionname="hello"class="cn.itcast.cd.action.HelloAction"method="hello">
<interceptor-refname="params">interceptor-ref>
action>
9. Result返回页的配置
9.1 Action中对应的方法执行完后需要转到一个视图
需要通过该Action中定义的方法的返回的String字符串来指定Result
9.2 这些Result都需要配置到:
注释:
name: action中的方法执行完后返回的字符串
type: 以哪种方式转向指定的页面
该类型提前做好配置:
1.可以自己配置:在当前Action所在的包中配置
那么这些配置类型只能够在当前包中使用,或者是在当前包的子包中使用..
2. 可以继承struts-default包使用里面定义好的类型,例:
注释结束-->
<paramname="location">/page3.jsp</param>
<paramname="charSet">UTF-8</param>
如果action没有指定type就会是用默认的type,在result-types定义的时候就指定...structs-default包里预定义的默认type是dispatcher,可以更改后面的default=true来更改默认type
如果在包中定义:
/globalResult.jsp
那么当Action对应的方法执行完后,按照返回的字符串找Result,但是在当前Action中找不到对应的Result就会去global-results
10、常用的Result Type
1. Dispatcher 请求转发
2. Redirect URL重定向
3. PlainText 纯文本
11. 常量配置:
在根元素
从strut2的核心jar包内的org.apache.struts2包下的default.properties文件中可以看到各个常量的注释说明,典型几个常量:
常量struts.devmode可以让struts在控制台中打印出更多的信息和重新加载配置文件。
常量struts.configuration.xml.reload可以让struts重新加载配置文件,但不会导致web应用重新启动。
常量struts.i18n.encoding可以设置struts内部进行各种字符编码处理时的字符集编码,例如,用于获取请求参数时的解码、读取静态文本文件和输出静态文本文件时的字符解码和编码。
常量可以在下面多个文件中进行定义,struts2加载常量的搜索顺序如下,后面的设置可以覆盖前面的设置:
default.properties文件
struts-default.xml
struts-plugin.xml
struts.xml
struts.properties(为了与webwork向后兼容而提供)
web.xml
对于struts.devmode有时候不好使
12、包的定位和Action的查找
13、Structs.xml中的默认值与配置:
在根元素
/success.jsp
插件:
使用ConfigBrowser Plugin浏览已经装载的配置信息和列表针对各个包名称空间下的所有Action的访问链接。
14动态方法调用:
14.1、在url里面/action名称+感叹号+方法名,不推荐使用此方法
14.2、通配符:
/WEB-INF/view/{1}/list.jsp
/WEB-INF/view/{1}/edit.jsp
/oa/{1}_list