Struts2开发文档

struts2配置

struts2核心配置文件约束

<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

过滤器配置

<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>

常用常量配置

 <constant name="struts.i18n.encoding" value="UTF-8" />

全局结果页面配置

<global-results>
    <result name="list">/list.jsp</result>
</global-results>
局部页面配置 > 全局页面配置

type属性值

dispatcher / redirect 针对页面配置

chain (转发到action) / redirectAction (重定向到action) → 针对action跳转

数据封装

  1. 属性封装 (原生写法,声明属性值)
  2. 模型驱动 (实现ModelDriven接口)
  3. 表达式封装 (表单属性:| 实体类.属性 | 方式进行封装)
注(1):一个类中只能使用一种封装方式,且模型驱动优先!
注(2):表单name属性值跟实体类属性且一一对应 

表达式封装和模型驱动封装

相同点:都可以将数据封装到实体类对象里面

不同点:

使用模型驱动只是把数据封装到一个实体类对象里面,在一个action里面不能使用模型驱动把数据封装到不同实体类对象里面

使用表达式封装可以不同的实体类对象中

封装数据到List集合

1、在action中声明list集合,实习其getter和setter方法
2、表单name属性值通过下标进行提交数据:list[0].username

封装数据到Map集合

1、在action中声明Mao集合,实习其getter和setter方法
2、表单name属性值通过key值进行提交数据

过滤器和拦截器的区别

过滤器:可以过滤一切文件

拦截器:只能拦截action

Servlet跟Action的区别

Servlet:默认在第一次访问的时候创建,只创建一次,是一个单实例对象
action:每次访问的时候创建,创建多次,是一个多实例对象

自定义拦截器

编写类,继承 MethodFilterInterceptor 类,通过配置文件跟action建立关系!

使用ognl表达式在JSP页面获取Session域对象的值

session.对象.属性
上一篇:HDU 3265 Posters(线段树)


下一篇:刷新DNS命令 如何刷新DNS缓存(flushdns)