回顾
一、多文件上传
File[]/List<File> photo;
String[] photoFileName;
String[] photoContentType;
二、文件的下载
是用一个结果类型stream实现的
配置参数:
contentType
contentDisposition
三、OGNL简介
OGNL比EL强大很多
可以调用任意方法
调用静态变量
调用静态方法:默认是关闭的。需要开启一个参数。
Struts2用OGNL前提:必须放在自定义标签中。
四、contextMap是什么样的结构
key value
request map
session map
application map
attr 按照顺序搜索
params map
根 list
五、ActionContext的API
六、ValueStack:根
特别提醒:生命周期,ActionContext和ValueStack和动作类都是每次请求都会重新实例化。
七、OGNL获取数据
根中的对象的属性获取,直接写属性名,从栈顶依次往下找
contextMap中,取数据,要使用#
八、OGNL创建List和Map:
{}
#{}
九、$和%的使用
$在struts.xml或者properties中使用OGNL表达式
%在JSP页面中,把普通字符串当做OGNL表达式
十、Struts2的通用标签
iterator
action:包含
一、Struts2中的UI常用标签
二、Struts2中的UI主题
1、提供的主题:simple(实际用)、xhtml(默认)、css_xhtml、ajax
2、修改struts2使用的主题:配置全局参数
<constant name="struts.ui.theme" value="simple"></constant>
三、防止表单重复提交
1、在表单中添加一个s:token
a、向HttpSession中存放了一个令牌
b、向表单中产生一个隐藏域,存了令牌
2、执行动作方法前,有一个叫做token的拦截器负责处理
四、Struts2和Spring进行整合
4.1Spring简介
1、搭建Spring(核心)的开发环境
spring.jar commons-logging.jar
2、Spring是一个对象容器
在应用的构建路径中建立一个application.xml(随意)配置文件
4.2JavaWeb中集成Spring
1、搭建Spring(核心)的开发环境
spring.jar commons-logging.jar
2、在WEB-INF目录下建立固定名称applicationContext.xml配置文件
3、在web.xml中注册监听器
4.3Struts2整合Spring
整合方式一:动作类还是Struts2负责管理,只是向Spring容器要service的实例
1、搭建Spring的web环境
2、搭建Struts2的开发环境
3、拷贝Struts2和Spring的插件过来。struts2-spring-plugin-2.3.15.3.jar
4、通过配置文件替换调用ObjectFactory:不用做
整合方式二:动作类也交给Spring管理