struts2中使用注解配置Action方法详解
作者:黄小鱼ZZZ 发布时间:2023-08-30 00:01:25
使用注解来配置Action可以实现零配置,零配置将从基于纯XML的配置转化为基于注解的配置。使用注解,可以在大多数情况下避免使用struts.xml文件来进行配置。
struts2框架提供了四个与Action相关的注解类型,分别为ParentPackage、Namespace、Result和Action。
ParentPackage:ParentPackage注解用于指定Action所在的包要继承的父包。该注解只有一个value参数。用于指定要继承的父包。
示例:
使用ParentPackage注解,其value值为mypackage,表示所在的Action需要继承mypackage包,
@ParentPackage(value="mypackage")
public class UserAction extends ActionSupport{
}
如果注解中只有一个value参数值,或者其他参数值都使用默认值时,则可以对value参数设置进行简写,比如上述的代码:
@ParentPackage("mypackage")
public class UserAction extends ActionSupport{
}
把struts2-convention-pligin-2.x.x.jar包导入到web应用中,才能在Action类中使用注解。
Namespace:Namespace注解用于指定Action所在的包的命名空间。该注解只有一个value参数,用于指定ACtion所属于的命名空间。
当使用Namespace注解时,在为命名空间取名需要使用斜杠(/)开头。
使用Namespace注解,指定其Action所在的包的命名空间为/user:
@Namespace("/user")
public class UserAction extends ActionSupport{
}
Result:Result注解用于定义一个Result映射,该注解包含四个参数,
1)name:可选参数,用于指定Result的逻辑名,默认值为success
2)location:必选参数,用于指定Result对应资源的URL
3)type:可选参数,用于指定Result的类型,默认值为NullResult.class
4)params:可选参数,用于为Result指定要传递的参数,格式为:{key1,value1,key2,value2,...}
如果type参数的值为NullResult.class,那么struts2框架在解析Result配置时,会使用默认的结果类型(即ServletDispatcherResult)来替换NullResult。
@Result(name="login",location="/login.jsp",params={},type="dispatcher")
public class UserAction extends ActionSupport{
}
Action:Action注解对应于struts.xml文件中的action元素。该注解可用于Action类上,也可用于方法上。这个注解包含一下的几个属性:
1)value:可选参数,表示Action的名字
2)results:可选参数,表示Action的多个Result映射。该属性用于定义一组Result映射
3)interceptorRefs:可选参数,表示Action的多个 * 。该属性用于定义一组 *
4)params:可选参数,表示传递给Action的参数,格式为{key1,value1,key2,value2,...}
5)exceptionMappings:可选参数,指定Action的异常处理类,他是一个Exception-Mapping的数组属性
@Action{
value="user",
interceptorRefs = {
@InterceptorRefs(value="fileUpload",params={"maximumSize","1024000","allowedTypes",image/123}),
@InterceptorRefs(value = "basicStack")
},
results = {
@Result(name="success",location="success.jsp"),
@Result(name="login",location="login.jsp")
},
exceptionMappings = {
@ExceptionMapping(exception="java.lang.Exception",result="error")
}
}
public class UserAction extends ActionSupport{
}
总结
远古边境 英文免安装版
https://www.jb51.net/game/578720.html
火柴人战斗 英文免安装版
https://www.jb51.net/game/578719.html
希望大家能够喜欢。
来源:http://blog.csdn.net/wojiaohuangyu/article/details/51471658#comments


猜你喜欢
- 本文实例为大家分享了C# picturebox实现图像拖拽和缩放的具体代码,供大家参考,具体内容如下1.核心步骤:①新建Point类型全局变
- 本文实例为大家分享了Android实现图片设置圆角形式的具体代码,供大家参考,具体内容如下1.自定义的图片圆角形式CircleImageVi
- JDK * 的过程JDK * 采用字节重组,重新生成对象来替代原始对象,以达到 * 的目的。JDK中有一个规范,在ClassPath下
- 本文实例讲述了Java实现插入排序的方法。分享给大家供大家参考。具体实现方法如下:import java.util.Arrays; /**
- logback自定义指定日志文件存储目录1、正常使用定义一个logback.xml配置文件即可:<?xml version="
- google benchmark已经为我们提供了类似的功能,而且使用相当简单。具体的解释在后面,我们先来看几个例子,我们人为制造几个时间复杂
- 当开发基于软件模式的游戏时,通过缩放视频缓冲区来适应显示尺寸是最棘手的问题之一。当面对众多不同的分辨率时(比如开放环境下的Android),
- 前言在之前 LiveData 源码浅析的博客中提到了 ViewModel 组件,当时对 ViewModel 的解释是 “
- 转发和重定向相同点都是web开发中资源跳转的方式。不同点转发:是服务器内部的跳转,浏览器的地址栏不会发生变化。从一个页面到另一个页面的跳转还
- 本文实例讲述了C#实现顺序表(线性表)的方法。分享给大家供大家参考,具体如下:基本思想是使用数组作为盛放元素的容器,数组一开始的大小要实现确
- MyBatis是一个优秀的持久层框架,它对jdbc的操作数据库的过程进行封装,使开发者只需要关注SQL本身,而不需要花费精力去处理例如注册驱
- 1.微信配置信息 global.properties2.方法wxpay用于生成预支付订单信息方法notifyWeiXinPay用于微信支付成
- 大家好,这是 [C#.NET 拾遗补漏] 系列的第 08 篇文章,今天讲 C# 强大的 LINQ 查询。LINQ 是我最喜欢的 C# 语言特
- JVM自带的类加载器:其关系如下:其中,类加载器在加载类的时候是使用了所谓的“父委托”机制。其中,除了根类加载器以外,其他的类加载器都有且只
- SpringBoot实现单文件上传功能,供大家参考,具体内容如下架构为springboot+thymeleaf,采用ajax方式提交1. 页
- AutoCompleteTextView是实现动态匹配输入内容的一种输入框(EditText),如输入“and”时,会提示“Android”
- Logger来自log4j自己的包。如果用Logger.getLogger,需要一个log4j的jar包,用此方式你只能依log4j:Log
- 影响排序效率的一般从3个方面比较:数据比较的次数,数据移动的次数,内存空间占用的大小。我们就冒泡排序、选择排序、插入排序、快速排序做一个总的
- Spring整合Myabtis思路的分析引入相关依赖SpringMyabtismysqlMybatsi-spring…
- 本文实例讲述了在WPF中动态加载XAML中的控件的方法。分享给大家供大家参考,具体如下:using System;using System.