Struts2注解配置与使用详解
5星 · 超过95%的资源 需积分: 3 2 浏览量
更新于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框架的优势,创建出更加灵活和可维护的项目。
2018-09-14 上传
2015-08-26 上传
2015-09-18 上传
2012-04-16 上传
2010-10-29 上传
113 浏览量
2013-06-07 上传
2014-01-10 上传
shenwenxiu1009
- 粉丝: 5
- 资源: 6
最新资源
- 正整数数组验证库:确保值符合正整数规则
- 系统移植工具集:镜像、工具链及其他必备软件包
- 掌握JavaScript加密技术:客户端加密核心要点
- AWS环境下Java应用的构建与优化指南
- Grav插件动态调整上传图像大小提高性能
- InversifyJS示例应用:演示OOP与依赖注入
- Laravel与Workerman构建PHP WebSocket即时通讯解决方案
- 前端开发利器:SPRjs快速粘合JavaScript文件脚本
- Windows平台RNNoise演示及编译方法说明
- GitHub Action实现站点自动化部署到网格环境
- Delphi实现磁盘容量检测与柱状图展示
- 亲测可用的简易微信抽奖小程序源码分享
- 如何利用JD抢单助手提升秒杀成功率
- 快速部署WordPress:使用Docker和generator-docker-wordpress
- 探索多功能计算器:日志记录与数据转换能力
- WearableSensing: 使用Java连接Zephyr Bioharness数据到服务器