Struts2学习总结1

来源:互联网 发布:2ne1 解散 知乎 编辑:程序博客网 时间:2024/04/30 06:40

1.Struts2 Action类接收用户输入的三种方式

1.1.域对象接收。在Action类中持有域的一个私有实例,并提供对应的setters和getters;在JSP页面使用“域实例.域属性名”的方式写input的name值。

1.2.使用Action类实现ModelDriven<?>接口方式。Action类中提供一个域实例并进行初始化;在JSP页面直接使用域属性名写input的name值。

1.3.采用属性接收的方式。直接在Action类中添加与JSP页面对应的实例 ,并提供setters和getters。


2.Struts.xml配置

2.1.result配置

<result>

    <param name="dispatcher">/index.jsp</param>

</result>

result的类型有很多种,默认为dispatcher。result类型是在struts-default.xml中配置的,其中指定的处理result的类。

2.2.方法名配置三种:

a.method指定方法名;

b.请求URL中动态方法调用:

c.actionname!methodname;通配符方式:*配合{数字序号}


3.OGNL表达式

3.1.概述

OGNL表达式是Object graphic navigation language(对象图导航语言),一种表达式语法,通过简单的表达式语法来读取和设置Java对象的属性值,调用对象的方法、遍历对象的结构图,实现字段转换等功能。

OGNL表达式是围绕OGNL上下文进行的。OGNL上下文是一个Map对象,其中可以包含一个或多个JavaBean对象,其中一个JavaBean对象为上下文根对象。

访问根对象直接使用根对象的属性名,访问其他对象属性需要使用“#key”前缀,例:#manager.name。OGNL表达式中的属性是JavaBean中的属性而不是类中的实例变量。

3.2OGNL表达式运用

OGNL表达式的基本单元是导航链,由属性名、方法调用和数组索引三部分组成。例:name.toCharArray()[0].numericValue.toString()

3.3Struts2中OGNL

a.支持值栈(ValueStack)

Struts2中将OGNL上下文设为ActionContext,将值栈设为上下文根对象,可以在值栈中放入删除和查询对象。ActionContext中还放了其他对象包括表示application  session  和  request 的Map对象。

b.[N].name语法

N为值栈位置序号,表示从指定位置开始向下查找对象。

c.Struts2总是把Action实例放在栈顶


4.Struts2对HttpServletRequest、ServletContext和HttpSession对象进行了封装,可通过ServletActionContext对象获取,还可以让Action类实现Aware接口,获取HttpServletRequest等对象。


5.拦截器

拦截器的工作方式:在Action执行前拦截器顺序执行,返回result之扣拦截器逆序执行。

0 0