学习Struts2框架之下册

ActionContext

在每次执行Action的方法之前都会创建新的ActionContext对象,所以ActionContext是线程安全的。struts2是采用ThreadLocal模式来保存ActionContext,ThreadLocal变量为每个线程提供独立的变量值的副本,使得每个线程都可以独立的使用自己的副本,从而不会跟其他线程发送冲突(使用map进行实现的)。

ThreadLocal原理代码

Alt text

ActionContext的6大对象

Alt text

  1. valueStack
    是什么:ValueStack是ActionContext的一个对象,是栈结构,FILO(先进后出)
    使用是:存放的就是Action对象,就是把Action的信息压入栈
    注意点: 由于是ActionContext的根对象,所以如果采用OGNL访问,可以直接访问

  2. OGNL(Object Graph Navigation Language)
    是什么:工作在视图层,用来取代页面中的 Java 脚本,简化数据的访问操作。
    怎么用: 常和strus2标签合起来用
    "#": 访问非根对象(is not valueStack)的属性,如 ActionContext 上下文加“#”前缀。
    “%”符号是在标签的属性值被理解为字符串类型时,告诉执行环境%{}里的是 OGNL表达式。

  3. struts标签库
    UI标签
    Alt text
    控制标签

<s:if test="表达式 1">
标签内容
</s:if>
<s:elseif test="表达式 2">
标签内容
</s:elseif>
<s:else>
标签内容
</s:else>

<s:iteractor></s:iteractor>

数据标签

<s:property value="">
<s:date name="#" format="yyyy年MM月dd日"/>

Alt text

<s:include value="foot.jsp"></s:include>

类型转换(typeconvert)

自定义类型转换
Point(x,y)

转换机制贴代码:

校验

(实例表单校验)贴代码:

拦截器(Interceptor)
  1. 记录访问时间
  2. 记录访问量
  3. 登陆拦截
国际化
  1. jdk国际化贴代码
  2. struts2国际化实现贴代码
文件上传下载的问题

struts2中的文件上传下载:

Struts2默认采用Common-FileUpload组件来实现文件上传,只是在此基础之后做了一层封装。所以,之前依赖的jar包依然需要
commons-fileupload-1.3.1.jar,commons-io-2.2.jar

表单重复提交问题

团队分模块开发, 就是在xml配置文件的时候进行包含操作, 进行集成。


口述总结篇
原文地址:https://www.cnblogs.com/jwlxtf/p/8045271.html