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

yizhihongxing

请按照以下步骤详细讲解"struts2中使用注解配置Action方法的完整攻略":

1. 确认环境

首先,你需要确保你的项目已经集成了Struts2框架。同时,你需要了解Action类和方法的基本概念,并且熟悉Java注解的基础知识。

2. 创建Action类

创建一个继承ActionSupport类的Action类,并且对于需要访问的Action方法添加相应的注解。例如:

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.*;

@Namespace("/")
@ResultPath(value = "/")
public class MyAction extends ActionSupport {

    @Action(value = "hello", results = {
            @Result(name = "success", location = "/success.jsp")})
    public String sayHello(){
        return SUCCESS;
    }
}

3. 注解详解

在上面的示例中,我们使用了以下几个注解:

@Namespace:

用于指定Action类所在的命名空间。如果你不指定的话,默认使用根命名空间。

@ResultPath:

用来指定返回结果的路径。这里我们指定为根目录。

@Action:

用于指定Action的名称,同时还可以指定方法名、HTTP请求方式、结果等。例如,我们使用@Action指定了这个Action的名称为“hello”,并且成功的结果将会保存在“/success.jsp”页面中。

@Result:

用于指定Action方法的结果名称、结果类型和结果位置。

4. 配置struts.xml

在我们确定好了Action类和方法之后,我们需要在“struts.xml”文件中进行配置,让Struts2框架能够识别我们所定义的这些Action方法。例如:

<package name="default" extends="struts-default">
    <namespace>/</namespace>
    <action name="hello" class="com.xxx.action.MyAction" method="sayHello">
        <result name="success">/success.jsp</result>
    </action>
</package>

5. 示例1

基于上面的Action定义和xml文件的配置,我们可以通过一个URL来访问这个Action方法:

http://localhost:8080/xxx/hello.action

在这个示例中,我们通过访问“http://localhost:8080/xxx/hello.action”来调用“sayHello”方法,成功的结果将会保存在“/success.jsp”页面中。

6. 示例2

另一个实际示例可以是:

import com.opensymphony.xwork2.ActionSupport;
import org.apache.struts2.convention.annotation.*;

@Namespace("/")
public class LoginAction extends ActionSupport {
    private String userName;
    private String password;

    @Action(value = "to-login", results = {
            @Result(name = SUCCESS, location = "/login.jsp"),
            @Result(name = INPUT, location = "/login.jsp")})
    public String toLogin() {
        return SUCCESS;
    }

    @Action(value = "do-login", results = {
            @Result(name = SUCCESS, location = "/index.jsp"),
            @Result(name = INPUT, location = "/login.jsp")})
    public String doLogin() {
        if("admin".equals(userName) && "123456".equals(password)) {
            return SUCCESS;
        }else {
            addActionError("用户名或者密码错误,请确认后重新登录");
            return INPUT;
        }
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

在这个示例中,我们定义了一个“Login”Action,并且实现了两个方法:“toLogin”和“doLogin”。后者负责验证登录信息,并且根据结果返回相应页面。

同时,我们也在XML文件中对于这两个方法进行了相应的定义:

<package name="default" extends="struts-default">
    <namespace>/</namespace>

    <!-- 跳转至登陆界面 -->
    <action name="to-login" class="com.zzxx.action.LoginAction" method="toLogin">
        <result name="success">/login.jsp</result>
        <result name="input">/login.jsp</result>
    </action>

    <!-- 登陆身份验证 -->
    <action name="do-login" class="com.zzxx.action.LoginAction" method="doLogin">
        <result name="success">/index.jsp</result>
        <result name="input">/login.jsp</result>
    </action>
</package>

当我们通过URL访问“to-login”或者“do-login”方法时,Struts2框架会自动地根据定义的注解和XML配置来跳转到相应页面。

以上就是struts2中使用注解配置Action方法的详细攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2中使用注解配置Action方法详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • MySQL实现分页查询的方法

    MySQL实现分页查询的方法可以通过limit关键字来实现。这个关键字可以在SQL语句中指定起始数据和需要返回的数据行数,从而实现分页的效果。 使用方法 使用limit关键字实现分页查询的语法如下: SELECT * FROM table_name LIMIT offset, count; 其中,offset表示查询的起始数据行位置,count表示需要返回的…

    Java 2023年6月16日
    00
  • Spring Security实现用户名密码登录详解

    Spring Security实现用户名密码登录详解 简介 Spring Security是Spring框架的一个模块,用于提供应用程序安全性。Spring Security基于servlet过滤器和Spring IoC,为web请求和方法注释提供安全性。 在本文中,我们将详细介绍Spring Security如何实现用户名密码登录功能,包括安全配置、用户信…

    Java 2023年6月3日
    00
  • Java实现KFC点餐系统过程解析

    Java实现KFC点餐系统过程解析 KFC点餐系统是一种常见的餐饮行业管理系统,它通常具备点餐、下单、处理订单、计算账单、管理运营等多项功能。Java作为一门跨平台的编程语言,它的面向对象特性和易学程度,使其被广泛应用于KFC点餐系统的开发中。 1. 确定需求功能 在开发KFC点餐系统前,首先需要明确该点餐系统要实现哪些功能。比如,该点餐系统需要实现菜单浏览…

    Java 2023年5月30日
    00
  • jdbc操作mysql数据库实例

    一、前言 Java Database Connectivity(JDBC)是Java提供的一种操作各种关系型数据库的API。本攻略将介绍如何使用JDBC操作MySQL数据库,包括连接MySQL数据库、创建表、插入记录、查询记录、更新记录和删除记录等操作。 二、依赖和环境需求 在开始实践之前,我们需要准备以下依赖和环境: MySQL数据库(可以是本地安装的,也…

    Java 2023年6月16日
    00
  • 如何把springboot jar项目 改为war项目

    首先需要了解的是,Spring Boot默认创建的是JAR项目,JAR包是一种Java的打包格式,跟普通的ZIP包大同小异。而WAR包是Java Web的打包格式。 将Spring Boot jar项目转为war项目,主要需要以下步骤: 1. 修改pom.xml文件 在Spring Boot的Maven项目中,需要在pom.xml文件中添加Web依赖和打包方…

    Java 2023年5月28日
    00
  • spring mvc4中相关注解的详细讲解教程

    以下是关于“Spring MVC4中相关注解的详细讲解教程”的完整攻略,其中包含两个示例。 1. 前言 Spring MVC是一种常用的Java Web开发框架,它提供了一种灵活的方式来开发Web应用程序。本攻略将详细讲解Spring MVC4中相关注解的使用方法。 2. 相关注解 2.1 @Controller @Controller注解用于标识一个类是S…

    Java 2023年5月16日
    00
  • JavaEE SpringMyBatis是什么? 它和Hibernate的区别及如何配置MyBatis

    JavaEE SpringMyBatis是JavaEE开发的一种技术栈组合,主要包含Spring框架和MyBatis持久层框架,用于简化JavaEE应用程序的开发和管理。下面分别详细讲解JavaEE、Spring和MyBatis以及它们之间的区别,最后提供MyBatis的配置攻略和示例。 JavaEE是什么? JavaEE(Java Enterprise E…

    Java 2023年5月19日
    00
  • SpringBoot server.port配置原理详解

    让我们来详细讲解一下“SpringBoot server.port配置原理详解”。 什么是server.port配置 在SpringBoot应用中,我们可以通过server.port属性来指定应用的端口号。这个属性可以在配置文件(如application.properties、application.yml等)或者命令行参数中指定。 配置文件中指定serve…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部