SSH框架入门(3)——struts2(3)
来源:互联网 发布:阿伦艾弗森生涯数据 编辑:程序博客网 时间:2024/06/17 15:35
通过前两篇的学习,我想应该对struts2框架有了一个大体了解,那我们今天继续学习struts2框架:
一、 Struts2中获取Servlet API
简单说,可以在action类中获取request response session...对象有两种方案:
1. ServletActionContext获取(都是静态方法)
ServlectActionContext类中都是些静态方法,可以直接通过类名调用;这个类就是用来获取servlet的常用API;
注意:在被我们过滤器所拦截的类中都可以使用ServletActionContext类来获取servlet的常用API;比较常用的有三种:
HttpServletRequestrequest = ServletActionContext.getRequest();HttpServletResponseresponse = ServletActionContext.getResponse();ServletContext servletContext = ServletActionContext.getServletContext();
2. 采用注入方式
Struts2框架在运行时,请求会被StrutsPrepareAndExecuteFilter拦截,会根据请求,去strtus.xml文件中查找到
匹配的action,在action执行前,会走一些interceptor,默认执行的拦截器是struts-default.xml文件中定义的。
在默认执行的拦截器中有一个
查看一下ServletConfigInterceptor源代码,以下是部分源代码:
ServletRequestAware, 实现这个接口可以获取HttpServletRequest
ServletResponseAware ,实现这个接口可以获取HttpServletResponse
ServletContextAware 实现这个接口可以获取ServletContext
采用注入方式获取request等对象的方法不常用,一般我们都是使用第一种方式,即使用ServletActionContext的静态
方法获取。
二、OGNL表达式
OGNL是Object-Graph Navigation Language(对象图导航语言)的缩写,他是一个单独的框架,它即可以单独使用
(但是几乎不会单独使用它),它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意
属性,调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属性。
Strtsu2框架内置了OGNL,OGNL本身也是一个项目,它是可以单独使用。
OGNL作用:
1.支持对象的操作,调用对象的方法
2.支持静态成员访问
3.支持赋值操作与表达串联
4.访问OGNL上下文,访问ActionContext
5.操作集合对象。
那我们现在就对这个OGNL表达式的作用来进行一下案例示范:1. 支持对象操作
2. 支持静态成员访问
3. 访问Ognl上下文
如果从根中获取数据,不需要添加#号,如果不是从根中获取需要#,我们OGNL表达式写#表示从上下文context中获取,不写#代表从根中获取
4. 操作集合
支持赋值操作与表达式串联
5. Strtus2框架中如何使用ognl表达式
在struts2框架中我们使用ognl表达式的作用是从valueStack(容器)中获取数据。我们在struts2框架中可以使
用ognl+valueStack达到在页面(jsp)上来获取相关的数据。要想在jsp页面上使用ognl表达式,就需要结合struts2框架
的标签:<s:property value=”表达式”>来使用,想要使用要先导入标签库:
- SSH框架入门(3)——struts2(3)
- SSH框架入门(1)——struts2(1)
- SSH框架入门(2)——struts2(2)
- Struts2入门——3,框架配置文件
- SSH框架入门(一)——Struts2基础及查错步骤
- 带你逐步深入了解SSH框架——struts2入门
- SSH框架——走进Struts2
- 学习SSH框架记录片1----Struts2入门
- SSH:Struts2框架(简介)
- SSH:Struts2框架(总结)
- JavaEE框架——struts2入门
- 用MyEclipse搭建SSH框架 Struts2.1 Spring3.0 Hibernate3.3 搭建SSH框架
- 【JavaEE—Struts2】Struts2概述以及框架入门
- ssh框架 Struts2.3+Spring3.1+Hibernate4.0.1......
- Struts2.3+spring3.1+hibernate4.0.1 搭建SSH框架
- MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3
- 【Struts2+Spring3+Hibernate3】SSH框架整合实现CRUD_1.3
- MyEclipse搭建SSH框架 Struts2.1+Spring3.0+hibernate3.3
- vue.js与其他前端框架的对比
- Jmeter引用js实现RSA加密
- Xcode9模拟器圆角切换成直角
- MySQL数据库limit分页、排序-SQL语句示例
- python的环境搭建
- SSH框架入门(3)——struts2(3)
- Mysql Order By varchar 类型数据
- 数据业务建立流程之发起网络连接过程
- spring aop :logaspect配置
- Linux内核部件分析 设备驱动模型的基石kobject
- Android---背景颜色大全
- 如何将Anaconda更新到想要的python版本(其实使用的是Anaconda中的切换不同环境的方法,不过步骤挺好)
- windows server 安装php
- 【转载】为什么说Java匿名内部类是残缺的闭包