1、必须得包
commons-fileupload.jar 文件上传
commons-io.jar 文件上传需要使用
commons-logging.jar 日志文件
ognl.jar 对象图表达式语言,相对于EL表达式,他提供对象方法的调用,静态方法调用和值的访问。
struts2-core.jar 核心包
xwork-core.jar 核心包
freemarker.jar 允许Java servlet保持图形设计同应用程序逻辑的分离,这是通过在模板中密封HTML完成的。模板用servlet提供的数据动态地生成 HTML。模板语言是强大的直观的,编译器速度快,输出接近静态HTML页面的速度
2、web.xml配置struts2过滤器
使用过滤器的类为:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExcuteFilter
在struts2中使用set属性的同时也讲值放到了request作用域中,在页面可以用${requestScope.属性对应字段}来获取。
注意:Struts2底层还是使用的servlet,对servlet做了很好的封装,获取值还是通过request.getParameter("")来获取值,struts.xml文件一定要写在src或者classes下。
3、extends="struts-default" 继承struts-default.xml文件,改文件在struts2-core.jar中。
4、struts2工作流程
a、提交一个请求(httpservletRequest)
b、请求到过滤器(filter)
1、ActionContextCleanUP
2、其他过滤器(siteMesh)
3、FilterDispatcher
c、filterDispatcher查找相应的actionMapper,如果有某个action,则把请求处理交给actionproxy
d、actionProxy通过configuration Manager(struts.xml)读取配置文件,找到需要调用的action类
e、actionProxy创建一个ActionInvocation实例,同时代理实例调用Action,在调用Action前会先加载Interceptor(拦截器)
f、一旦Action执行完毕,ActionInvocation负责struts.xml中的配置返回对应的result。