struts2中使用注解配置Action方法详解

使用注解来配置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{
} 

总结

以上就是本文关于struts2中使用注解配置Action方法详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:struts2中类型转换实例代码、Struts2 通过ognl表达式实现投影、Struts2修改上传文件大小限制方法解析等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持。下面介绍几款不错的小游戏,大家在工作学习之余可以放松下心情,劳逸结合才是最好的。

远古边境 英文免安装版

http://www.jb51.net/game/578720.html

火柴人战斗 英文免安装版

http://www.jb51.net/game/578719.html

希望大家能够喜欢。

(0)

相关推荐

  • Struts2中Action中是否需要实现Execute方法

    今天有朋友问我Struts2中Action必须实现execute方法吗?顺利的回答出来了. 其实分两种情况: 1)如果你的Action类是继承自ActionSupport或是BaseAction的话,确切的说是重写了execute方法,ActionSupport里的默认实现就是返回"success"视图.因此,你可以不实现execute方法,只要你的struts.xml里有"success"对应的result即可. <action name="doR

  • 详解在Java的Struts2框架中配置Action的方法

    在Struts2中Action部分,也就是Controller层采用了低侵入的方式.为什么这么说?这是因为在Struts2中action类并不需要继承任何的基类,或实现任何的接口,更没有与Servlet的API直接耦合.它通常更像一个普通的POJO(通常应该包含一个无参数的execute方法),而且可以在内容定义一系列的方法(无参方法),并可以通过配置的方式,把每一个方法都当作一个独立的action来使用,从而实现代码复用. 例如: package example; public class U

  • 用js模拟struts2的多action调用示例

    最近修了几个struts2.1升级到2.3后动态方法调用失效的bug,深有感悟, 但是我那种原始方法有一个局限,就是在submit那里写下的action不起作用,就算启动了动态方法调用也不行(我想应该是struts2.3的一个bug),所以为了完善这个功能,这里我再说一个用js的方法. 在<s:submit value="提交" onclick="return submitAction('某某action')" />,添加onclick方法,然后再在js

  • struts2中使用注解配置Action方法详解

    使用注解来配置Action可以实现零配置,零配置将从基于纯XML的配置转化为基于注解的配置.使用注解,可以在大多数情况下避免使用struts.xml文件来进行配置. struts2框架提供了四个与Action相关的注解类型,分别为ParentPackage.Namespace.Result和Action. ParentPackage:ParentPackage注解用于指定Action所在的包要继承的父包.该注解只有一个value参数.用于指定要继承的父包. 示例: 使用ParentPackage

  • SpringMVC中常用注解与使用方法详解

    MVC简介 MVC 全名是 Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写, 是一种用于设计创建 Web 应用程序表现层的模式. Model(模型): 通常指的就是我们的数据模型.作用一般情况下用于封装数据. View(视图): 通常指的就是我们的 jsp 或者 html.作用一般就是展示数据的. 通常视图是依据模型数据创建的. Controller(控制器): 是应用程序中处理用户交互的部分.作用一般就是处理程序逻辑的.

  • Spring boot中PropertySource注解的使用方法详解

    前言 本文将重点讲解一下Spring中@PropertySource注解的使用,如何通过PropertySource注解加载指定的配置文件.以及PropertySource注解与@ConfigurationProperties两个注解的配合使用.下面话不多说了,来随着小编来一起学习学习吧. 1.1. PropertySource注解加载指定的属性文件 Spring框架提供了PropertySource注解,目的是加载指定的属性文件,接下来我们看一下如何使用该注解.首先我们定义一个配置类,并在类中

  • Ubuntu中静态DNS配置的方法详解

    DNS服务的简介: DNS(Domain Name Server,域名服务器)是进行域名(domain name)和与之相对应的IP地址 (IP address)转换的服务器.DNS中保存了一张域名(domain name)和与之相对应的IP地址 (IP address)的表,以解析消息的域名. 因为实验室实现的拟态存储系统需要实现动态变更ip地址,所以需要搭建一个dns服务器,并且将需要查询变更ip地址的服务器都绑定到同一台dns服务器之上.通常在RedHat系列(eg:Fedora,Cent

  • Spring-IOC容器中的常用注解与使用方法详解

    Spring是什么? Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题.它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持.Spring负责基础架构,因此Java开发者可以专注于应用程序的开发. 体系结构 核心容器(Core Container):Spring的核心容器是其他模块建立的基础,有Spring-core.Spring

  • Struts中使用validate()输入校验方法详解

    1.在ActionSupport中有一个validate()方法,这个方法是验证方法,它会在execute()方法执行之前执行,所以能够起到很好的验证的作用. @Override //重写Action中的validate()方法 public void validate() { if(null==this.username||this.username.length()<4||this.username.length()>6){ this.addActionError("userna

  • Spring中@Async注解实现异步调详解

    异步调用 在解释异步调用之前,我们先来看同步调用的定义:同步就是整个处理过程顺序执行,当各个过程都执行完毕,并返回结果. 异步调用则是只是发送了调用的指令,调用者无需等待被调用的方法完全执行完毕,继续执行下面的流程.例如, 在某个调用中,需要顺序调用 A, B, C三个过程方法:如他们都是同步调用,则需要将他们都顺序执行完毕之后,过程才执行完毕: 如B为一个异步的调用方法,则在执行完A之后,调用B,并不等待B完成,而是执行开始调用C,待C执行完毕之后,就意味着这个过程执行完毕了. 概述说明 Sp

  • python中Django文件上传方法详解

    Django上传文件最简单最官方的方法 1.配置media路径 在settings.py中添加如下代码: MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 2.定义数据表 import os from django.db import models from django.utils.timezone import now as timezone_now def upload_to(instance, filename):     now = timezo

  • Python 在 VSCode 中使用 IPython Kernel 的方法详解

    本文介绍,在 VSCode 使用 IPython Kernel的设置方法,详细介绍如下所示: 要达到的效果: 只需按下 Ctrl+:,选中的几行代码,就会自动发送到 IPython Kernel,并运行,得到结果!当然,快捷键也可以另行设置! 为什么要这么做: 首先,这种配置方式,比较轻量快速: 主要用于,增加写代码时的"互动性",可以边写代码,边测试:例如,在写代码时候,快速测试下,一行或几行代码,看看效果: 所以,非常适合新手,边写边学习,或者,需要写个几十行代码,迅速解决问题,的

  • SpringBoot配置绑定方法详解

    目录 配置绑定 @Value基础类型配置 @ConfigurationProperties注解 @PropertySource 配置绑定 所谓“配置绑定”就是把配置文件中的值与 JavaBean 中对应的属性进行绑定.通常,我们会把一些配置信息(例如,数据库配置)放在配置文件中,然后通过 Java 代码去读取该配置文件,并且把配置文件中指定的配置封装到 JavaBean(实体类)中. SpringBoot提供了以下两种方式进行配置绑定: 使用@Value注解 使用@ConfigurationPr

随机推荐