• 欢迎来到本博客,希望可以y一起学习与分享

struts笔记

Java benz 3年前 (2018-02-25) 128次浏览 0个评论 扫描二维码
文章目录[隐藏]

快速入门

1. 导包

把解压后的Struts2压缩包解压,在解压后的文件夹中找到apps文件夹中的struts2-blank.war文件,把后缀改为zip后解压,在解压后文件夹中找到WEB-INF/lib,把lib文件夹里的全部jar包导入。

2. 创建Action类

在项目src文件夹下,创建一个包com.benz.action,其下创建类HelloAction(命名规则:XxxxAction)

3. 创建Struts配置文件

在src文件夹下创建struts.xml文件

4.在web.xml中为Struts配置filter

这步很重要,也是最后一步,因为Struts的功能实现都是基于filter过滤器的,如果不为Struts配置filter过滤器,那么Struts是不会工作的。
在项目webroot下WEB-INF中的web.xml文件中配置如下

其中Struts 的filter-class 的值,可以在eclipse下,通过快捷键ctrl+shift+T,在对话框中输入StrutsP就会看到filter-class 的值

5. 创建一个hello.jsp

6.发布工程

发布工程,并在浏览器访问http://localhost:8080/项目名/hello/HelloAction
出现hello world!!!!。到此入门成功。

Struts2通俗访问流程

Struts框架流程

AOP思想

传统:每个servlet都有“解决乱码”这代码
AOP:把“解决乱码”放到filter里,所有servlet都接入到filter

Struts2配置详情——Struts2核心配置

其中,extends=”struts-default”,继承了Struts的默认配置,struts-default的文件路径,在Struts核心包struts2-core-2.3.24.jar包下的一个struts-default.xml文件

如果想给每个action单独配置一个struts.xml,(其实执行的只有src下的那个struts.xml)那么需要到src下的那个struts.xm中使用include引入其他struts.xml

Struts2配置详情——Struts2常量配置

Struts2默认常量配置为default.properties,位置为Struts核心包struts2-core-2.3.24.jar包下的一个包org.apache.struts2下的default.properties文件。

修改Struts2常量配置(方式先后也是加载顺序,以最后加载为准)

方式一:修改src下的struts.xml文件(重点掌握)

方式二:在src下创建struts.properties

方式三:修改web.xml文件

常用常量配置

配置进阶——动态方法调用

建立包com.benz.dynamic,其中创建类Demo1Action.java

方式一:配置struts.xml文件

访问路径:http://localhost:8080/struts2/dynamic/dynamicDemo1!add
格式:action名!方法名,如:dynamicDemo1!add
方式二:通配符方式(常用)

访问方式:

配置进阶——默认值

Action创建方式

方式一:创建一个类.可以是POJO

方式二:实现一个接口Action

方式三:继承一个类.ActionSupport

结果处理方式

创建包com.benz.result,创建如下类

方式一:转发
http://localhost:8080/struts2/demo1action
方式二:重定向
http://localhost:8080/struts2/demo2action
方式三:转发到Action
http://localhost:8080/struts2/demo3action
方式四:重定向到Action
http://localhost:8080/struts2/demo4action

获得ServletAPI


方式一:通过ActionContext

方式二:通过ServletActionContext

方式三:通过实现ServletRequestAware接口

Jsp文件:

参数获得

方式一:属性驱动获得参数

JSP:

测试代码:

方式二:对象驱动获得参数

JSP:

测试代码:

方式三:模型驱动获得参数

JSP:

测试代码:

User类实体:

集合类型封装

JSP:

测试代码:

OGNL

OGNL:对象图像导航语言 ${user.addr.name}这种写法就叫对象图像导航
OGNL不仅仅可以视图导航,支持比EL表达式更加丰富的功能。

1.导包:

不用导,Struts2已集成

2.入门:

User 类

示例:

OGNL基本语法演示

Struts与ognl结合原理:

查看值栈中两部分

Jsp代码:

创建一个action:

配置struts.xml

访问http:// localhost:8080/xxxx/Demo1Action
结果:
ROOT 值栈:

默认情况下,栈中放置当前访问的Action对象。
Context域:

stack context放置的内容

ognl表达式与Struts2框架结合体现–参数赋值


创建user类

创建form.jsp

创建Demo2Action

配置struts.xml:

注意:一个知识点
//1获得值栈
ValueStack vs = ActionContext.getContext().getValueStack();
//2将u压入栈顶
vs.push(u);

form.jsp输入参数后,Demo2Action接收的参数为null

因为数据压栈前要经过二十道拦截器,拦截器把数据给处理掉了,最后到这里是接收不到数据的

所以要接收数据,要把modelDriven拦截器接口实现

ognl表达式与Struts2框架结合体现-配置文件中使用ognl

创建action类

struts.xml文件配置

拦截器API


拦截器配置(参考struts-default.xml)

创建action类

Struts2标签



文章 struts笔记 转载需要注明出处
喜欢 (0)

您必须 登录 才能发表评论!