struts2速览
struts2速览
ruoxijunstruts2速览
1. 环境搭建:
1. 导入Struts依赖:
1 | <!-- https://mvnrepository.com/artifact/org.apache.struts/struts2-core --> |
2. web.xml配置:
1 | <!-- struts2 核心过滤器 --> |
3. action书写类:
在Struts中所有的请求都对应了一个 action
的方法,通过方法的返回值映射相应的 result
处理请求:
1 | public class HelloAction implements Action { |
在action类中可定义与请求数据中同名的成员来接收请求中的数据。也可定义对象成员变量来接收请求数据,需要请求中的数据是以
成员对象变量名.属性
的形势来封装的。最重要的一点是接收数据的成员变量需要有set/get
方法。同理需要接收页面表单数据时只需设置好表单元素的
name
,再在action中给接收表单各元素数据的变量设置与表单元素name对应的变量名并添加 set/get 方法,即可自动接收表单数据。
4. 核心配置文件struts.xml:
在 resources
文件夹中新建 struts.xml
文件并如下配置:
1 |
|
访问 项目路径/index
或 项目路径/index.action
。
2. Action 类:
- Action 是 Struts2的核心业务类,使用Struts2编写action类通常都需要实现
com.opensymphony.xwork2.Action
接口并实现它的execute
方法。 - Struts2 中不需要类实现action接口,可以直接编写一个普通类作为action。只要求业务方法实现一个返回类型为string的无参方法即可。
- Struts2中不在推荐实现action接口,推荐去继承
com.opensymphony.xwork2.ActionSupport
类。ActionSupport
类实现了action接口和许多接口,提供了输入验证,错误信息,国际化等等功能的支持。
action 源码:
1 | public interface Action { |
action是通过配置文件中action标签配置的方法的字符串返回值,对应result标签的name值来找到相应的result处理结果。在action接口中为我们提供5个常用的结果常量。
3. Struts.xml 配置:
1. constant 常用配置:
1 | <!-- 设置请求后缀,设置后原来的action后缀和不要后缀的方式就不生效了 --> |
2. package :
1 | <package name="default" namespace="/" extends="struts-default"></package> |
package:是一种包的概念,将同一业务的action请求集中到一个包中方便管理,并且不同的包是可以被继承的。
- name:是包的名字,一个Struts.xml文件中可以有很多个package,这些包通过name来区分。
- namespace:命名空间(可以理解为请求添加父路径)。
- extends:继承某包,通常继承
struts-default
因为它定义了大量的Struts特性。
package 中配置默认action,在找不到action时使用此默认action:
<default-action-ref name="default"/> <action name="default"> <result>error.jsp</result> </action>
1
2
3
4
5
6
7
### 3. action:
```xml
<action name="index" class="cn.ruoxijun.action.HelloAction" method="execute">
<result name="success">/index.jsp</result>
</action>
action:配置请求和响应结果。
- name:action的请求路径和请求名。
- class:处理请求的类,全路径名。不写时默认使用
ActionSupport
作为请求处理类。 - method:类中处理请求的方法。不写时默认使用
execute
作为请求处理方法。
result:处理请求结果,标签中的值为要跳转的页面,一个action可以有多个result。
- name:action对应类对应方法的字符串返回值,不写时默认使用
success
作为值。
- name:action对应类对应方法的字符串返回值,不写时默认使用
4. Result:
- Result 跳转配置:
1 | <!-- 页面跳转 --> |
- 动态跳转:
1 | public String toAction; // 添加get/set方法 |
- package中配置全局结果
1 | <global-results> |
所有result中方法返回值和name为success且跳转页面为index.jsp的result不用在action中再配置result。即默认所有action中有一个name为success的result跳转index,配置了的则覆盖此result。
Comment
匿名评论隐私政策
TwikooWaline
✅ 你无需删除空行,直接评论以获取最佳展示效果