创建一个动态web项目
- 在struts官网下载struts2的开发包,
* https://struts.apache.org/ -- 官网地址
- 解压struts-2.3.24-all.zip包
* 解压后会看到有包和一些文件,大家需要掌握包相关的信息
* apps -- Struts2框架提供了一些应用
* libs -- Struts2框架开发的jar包
* docs -- Struts2框架开发文档
* src -- Struts2框架源码
- 引入需要开发的jar包
* Struts2框架的开发jar包非常多,但是不是所有都是必须要引入的,有一些必须要导入的jar包,这些jar包可以从Struts2框架提供的应用中找到。
* 大家可以打开apps目录,然后找到struts2-blank.war应用。war包和zip包的压缩格式是一样的,所以可以自己修改后缀名,解压。
* 找到解压后的应用,打开WEB-INF/lib目录下所以的jar包。复制到工程中,就可以了。
- 需要配置Struts2的前端控制器,注意:这一步是必须要做的操作,这是Struts2核心的控制器。
* Struts2的前端控制器就是一个过滤器,那么过滤器相关知识咱们都学习过,需要在web.xml中进行配置。
* 前端控制器的类的路径和名称:org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
* 具体配置如下
<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>
struts2配置文件编写
- 配置文件名称是struts.xml(名称必须是struts.xml)
- 在src下引入struts.xml配置文件(配置文件的路径必须是在src的目录下)
- 配置如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<package name="default" namespace="/" extends="struts-default">
<action name="hello" class="com.hsun.action.HelloAction" method="hello">
</action>
</package>
</struts>
其中<struts>是根标签,<package>标签:包,struts2使用package来组织模块。
- package标签的name属性:相当于是一个包的标识,用于其他包继承本包时的一个唯一的标识。
- package标签的namespace属性:该属性是可选的,如果没有配置,那么该属性的默认值是“/”,
如果为namespace属性配置了一个非默认值的值,那么想要调用这个包里的Action就需要在调用的URL中添加这个属性所定义的命名空间的值。
- Action类 VS action
- Action类就是一个Java类,他是定义每个action的类,
- <package>标签下的<action>标签:一个struts2请求对应一个action;其中action标签的name属性就是一个struts2请求的URL除域名:端口、contextPath、namespace,以及后缀的部分(当然如果struts2的action访问使用的是通配符访问则该URL需要加上后面method对应的方法名称);