Struts2注解配置与使用详解
5星 · 超过95%的资源 需积分: 3 104 浏览量
更新于2024-09-16
收藏 13KB DOCX 举报
"本文将详细介绍如何在Struts2框架中使用注解进行配置,包括web.xml的设置、注解的添加、验证注解的应用以及与Result配置相关的注解使用。"
Struts2注解允许开发者在不编写XML配置文件的情况下,通过在Java类和方法上添加注解来实现Action、Interceptor、Result等的配置,极大地简化了开发流程。
一、配置web.xml
在Struts2中,虽然可以使用注解减少XML配置,但基础的过滤器配置仍然需要在web.xml中设置。如以下代码所示,我们需要定义一个名为`struts2`的filter,指定其class为`org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter`。在这里,我们还可以通过`init-param`参数指定Action的包名,例如`com.test.action`,这有助于Struts2自动发现并处理注解的Action。
```xml
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>com.test.action</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
```
二、加入注解
1. Action注解:使用`@Action`注解可以定义Action的行为。例如:
```java
@Namespace(value="/test")
@Action(value="file-manager",
interceptorRefs={
@InterceptorRef(value="fileUpload", params={"maximumSize","1024000","allowedTypes","image/pjpeg"}),
@InterceptorRef(value="basicStack")},
results={@Result(name=ActionSupport.SUCCESS,location="/view/file-manager-sucess.jsp"),
@Result(name=ActionSupport.ERROR,location="/view/file-manager-error.jsp")},
exceptionMappings={@ExceptionMapping(exception="java.lang.Exception", result=ActionSupport.ERROR)})
public class FileManagerAction extends ActionSupport {
// ...
}
```
在这个例子中,`@Action`指定了Action的名称、拦截器引用以及结果映射。`@InterceptorRef`用于添加拦截器,`@Result`用于定义不同的结果页面。`exceptionMappings`则用于指定异常映射,当出现指定异常时,转向对应的错误页面。
2. 验证注解:Struts2提供了验证注解,例如`@Validations`,用于字段的验证。如下:
```java
public class UserAction extends ActionSupport {
@Validations(
requiredStrings={
@RequiredStringValidator(fieldName="username", message="用户名不能为空!"),
@RequiredStringValidator(fieldNam="password", message="密码不能为空!")
}
)
private String username;
private String password;
// getters and setters
}
```
这里的`@Validations`包含了两个`@RequiredStringValidator`,分别对用户名和密码字段进行非空验证,如果验证失败,会返回相应的错误消息。
三、Convention的Annotation
Struts2 Convention插件进一步简化了注解的使用,它能够自动根据类名、方法名等推断Action的名称、结果页面等。例如,如果你有一个类名为`EditUserAction`,那么Conventions会假设这是一个编辑用户的Action,而不需要显式地添加`@Action`注解。
四、与Result配置相关的Annotation
`@Result`注解用于定义Action执行后的结果页面。如上文所示,你可以直接在`@Action`注解内部定义多个结果,例如:
```java
@Result(name=ActionSupport.SUCCESS, location="/success.html")
@Result(name=ActionSupport.ERROR, location="/error.html")
```
这样,Action执行成功时会跳转到`/success.html`,出错则跳转到`/error.html`。
总结,Struts2注解使得开发者能够更快速地开发Web应用,减少了XML配置的工作量,提高了开发效率。通过熟练掌握这些注解,可以更好地利用Struts2框架的优势,创建出更加灵活和可维护的项目。
135 浏览量
138 浏览量
128 浏览量
2013-12-07 上传
2010-10-29 上传
128 浏览量
129 浏览量
103 浏览量
136 浏览量
shenwenxiu1009
- 粉丝: 5
- 资源: 6
最新资源
- 基于知识图谱的推荐算法-CKE的实现.zip
- chuong:(原型)真彩色3D昆虫模型www.ala.org.auchuong
- viper-plugin-mongoose:毒蛇插件猫鼬
- ico-check:加密项目的背景调查和尽职调查
- PSD韩国生活艺术模板
- SoftUniPythonFundamentals:我整个家庭作业分配库全部集中在一个地方
- AdventOfCode2019Day3
- Colormesh:一个R包,用于分析图像中的颜色图案
- 基于react+dva的框架使用webpack构建demo.zip
- SincNet:SincNet是一种用于有效处理原始音频样本的神经体系结构
- ya-presentation:Yet-another-presentation 是 Yandex 的一个 javascript 插件
- PSD美女婚纱模板下载
- 清新文艺花卉背景的扁平化图表PPT模板
- Trivia:构建Trivia游戏的API
- Haha Business! at Code School-crx插件
- 数据库课程设计,采用flask+mysql.zip