## 配置路由
```
<package name="default" namespace="/hello" extends="struts-default">
<!-- 设置hellostruts Action -->
<action name="struts">
<!-- 设置V层,相对于WebContent的绝对路径 -->
<result>/WEB-INF/jsp/hellostruts.jsp</result>
</action>
<!-- 设置world Action -->
<action name="world" class="Hello.World">
<!-- 当返回字符串为 success 时,渲染 /jsp/hello/world.jsp -->
<result name="success">/jsp/hello/world.jsp</result>
</action>
</package>
```
### 测试
打开:localhost:8080/javaee/hello/world
![](https://box.kancloud.cn/347c6ed00715538f1e072c625c55b962_707x219.png)
我们看到,路由信息生效了,它为我们去自动的调用了Hello.World这个类,但是由于我们并没有创建,所以它并没有找到。
> 与TP不同,Struts中每个Action对应的是某个类中的固定方法。也就是说,TP的action对应的是方法,而struts的action对应的是类。
Structs对不同状态下模板的调用放到了xml配置文件中,这与我们以前在C层直接渲染模板不同。
## 创建Hello.World
Hello.World中,Hello是包名,可以理解为命名空间,或是文件的位置。World即是类名又是文件名。
我们依次在src文件夹中,创建package -> Hello,及类 -> World.java
```
//包名 与 文件所在文件夹对应
package Hello;
// 类名 与 文件名对应
public class World {
// 该execute方法将被自动调用, 方法的返回类型必须为String
public String execute() {
return "success"; // 返回字符串success
}
}
```
## 测试
![](https://box.kancloud.cn/5c454b405131e5d9339c04a9aef2d1cc_408x141.png)
## 时序图
我们共同来梳理一下程序执行的交互过程
![](https://box.kancloud.cn/af402fa765bf38236d218142e6b31c31_1048x620.png)
## 作业:
在web.xml中,为struts2改个自己喜欢的名字
- README
- 第一章:准备
- 第二章:Hello World!
- 第一节:查看工程文件
- 第二节:JDK、JRE与环境变量
- 第三节:index.jsp
- 第三章:Hello Struts
- 第一节:Web.xml
- 第二节:单入口
- 第三节:Hello Struts
- 第四节:触发C层
- 第四章:建立数据表
- 第一节:建立实体类
- 第二节:测试一
- 第三节:测试二
- 第四节:引入Hibernate
- 第五节:配置Hibernate
- 第六节:建立连接
- 第七节:实体类映射数据表
- 第八节:完善数据表
- 第五章:教师管理
- 第一节:增加数据--add
- 第二节:增加数据--save
- 1 获取传入数据数据
- 2 数据写入测试
- 3 对接C层
- 第三节:数据列表
- 1 获取数据
- 2 重构代码
- 3 C层对接--初始化
- 4 C层添加数据
- 5 V层显示数据
- 6 获取数据库中数据
- 7 显示性别
- 8 分页
- 9 条件查询
- 第四节:修改数据
- 1 edit
- 2 update
- 第五节:删除数据
- 第六节:总结
- 第六章:重构C层
- 第一节:继承ActionSupport类
- 第二节:数据验证
- 第七章:前台分离(前台)
- 第一节:环境搭建
- 第二节:运行环境
- 第三节:共享开发环境
- 第四节:生产环境
- 第八章:前台开发(前台)
- 第一节:本地化
- 第二节:教师列表
- 1 引入M层
- 2 模拟后台返回数据
- 3 C与M对接
- 4 C与V对接
- 第九章:前后台对接(前后台)
- 第一节:后台输出json(后台)
- 第二节:对接前台(全栈)
- 第二节:对接API(前台)
- 第二节:跨域请求(后台)
- 第三节:重构代码(前台)
- 第十章:重构后台M层
- 第一节:数据访问DAO层
- 第二节:项目整体重构
- 第十一章:用户登陆(前后台)
- 第一节:制定规范
- 第二节:定制测试用例
- 第三节:后台输入测试代码(后台)
- 第四节:postman(后台)
- 第五节:新建用户登陆模块(前台)
- 第六节:代码重构(前台)
- 第十二章:班级管理(前后台)
- 第一节:班级列表
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第二节:Add
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第三节:Save
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第四节:Edit
- 1 原型开发
- 2 制定规范
- 3 后台对接开发
- 4 前台对接开发
- 第五节:Update
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第六节:Delete
- 1 制定规范
- 2 后台对接开发
- 3 前台对接开发
- 第七节:小结
- 第十三章:班级管理(API)
- 第一节:ER图
- 第二节:create
- 1 实体层
- 2 dao层
- 3 service(server)层
- 4 action层
- 第三节:ManyToOne
- 第四节:Read
- 1 service(server)层
- 2 action层
- 第五节:update
- 1 service(server)层
- 2 action层
- 第六节:update
- 第十四章:重构服务层