Struts2知识点总结 - 图文

Struts2基础知识

Struts2概述

1.Struts2框架应用javaee三层结构中的web层框架。

2.Struts2框架在struts1和webwork基础之上发展的全新框架。 3.Struts2所解决的问题:

在以往实现一个功能时,都需要写很多的servlet,从而造成后期维护上的不方便。 图解:

4.现在比较稳定的Struts2版本 struts-2.3.24-all.zip 5.web层常见框架 1.struts 2.springMVC Struts2框架入门

1.导入jar包

1.在lib里面有jar包,但不能全部导入,因为里面含有一些spring包,是不能使用的,导入会导致程序不能运行。 2.到app目录里面复制案例的jar包是最好的方法。 2.创建action

3.配置action类的访问路径

1.创建struts2核心配置文件,该核心配置文件位置和名称是固定的,位置必须在src下面,名称为struts.xml 。 2.引入dtd约束,可以在案例文件中找到,复制在struts.xml文件中即可。

3.action的配置

*注意访问路径:

http://域名/端口号/项目名/action名.action

注意:.action可以省略,但建议不要省略,为了兼容一些老版本的浏览器。

4.配置Struts2的过滤器,可以在案例中的web.xml文件中找到,复制粘贴即可。

Struts2执行过程

图解:

Struts2配置

Struts2的核心配置文件 1.名称和位置是固定的。 2.在配置文件中主要有三个标签,package、action、result,以及各个标签内的其它属性。 标签package 1.类似于代码包,区别不同的action,要配置action,必须首先写package标签,在package里面才能配置action 。 2.package标签属性 1.name属性,name属性的值跟功能本身没有关系的,在一个配置文件中可以写多个package标签,但name的属性值不能相同。 2.extends属性,该属性的值是固定的,在package里面配置的类具有action功能。 3.namespace属性,该属性值和action标签里面的name的属性值构成访问路径,可以不写,推荐写上,默认为/。 标签action 1.action标签配置action访问路径。 2.action标签属性 1.name属性 namespace属性值和action标签里面的name属性值构成访问路径。在package标签里面可以写多个action标签,但是action的属性name的值不能够相同。 2.class属性 action的全路径,即包名+类名 3.method属性 比如在action里面默认执行的方法是execute方法,但是在action

里面写其他的方法,让action里面多个方法执行,使用method进行配置。 标签result 1.根据方法的返回值,配置到不同的路径下。 2.result标签属性 1.name属性 和action中method所调用的方法返回值一致。 2.type属性 配置如何到路径中(转发/重定向),该属性值的默认是做转发操作。 标签constant 1.是一种常量标签 2.修改Struts2的默认常量值 1.常用方式 在struts.xml中进行配置。 2.其它两种方式 1.在src下面创建struts.properties文件并修改。 2.在web.xml文件中进行修改。 3.Struts2最常用的常量 struts.il8n.encoding=UTF-8,解决表单在通过post方式提交中文时,中文乱码的问题。 分模块开发 1.单独写配置文件,把配置文件引入到核心配置文件中,从而解决多人操作一个核心文件的问题。 2.配置用法 在.xml文件中加入即可。 Action的编写方式 1.action有三种编写方式 第一种创建普通类,这个不继承任何类,不实现任何接口 第二种创建类,实现Action接口,实现execute方法 第三种创建类,继承ActionSupport 访问action的方法 1.有三种方式访问action的方法 第一种使用action标签的method属性,在这个属性里面写要执行的action方法。 缺陷:action每个方法都需要配置,如果action里面有多个方法,需要配置很多的action 第二种使用通配符实现(提高代码复用性) 在action标签中的name属性写成”前缀_*”,method属性成”{1}”即可,该*号表示的是action方法中的各个方法,而1是取name属性值的第几个*号。 第三种动态访问实现(了解,极少使用) 2.注意*

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4