struts2入门Demo示例

下面为你详细讲解“struts2入门Demo示例”的完整攻略:

环境搭建

首先,需要搭建Java环境和Tomcat服务器环境,并下载Struts2框架。这里以Windows环境下为例,具体步骤如下:

安装Java环境

  1. 下载JDK并进行安装,自定义安装目录。
  2. 配置环境变量JAVA_HOME,值为JDK安装目录路径,例如 C:\Program Files\Java\jdk1.8.0_131
  3. 在Path环境变量中加入 %JAVA_HOME%\bin,方便在命令行中执行java和javac命令。

安装Tomcat服务器

  1. 下载Tomcat服务器并解压到自定义的目录下。
  2. 配置环境变量CATALINA_HOME,值为Tomcat安装目录路径,例如 C:\Program Files\Apache Software Foundation\Tomcat 8.0

下载Struts2框架

  1. 从Struts官方网站(https://struts.apache.org/download.cgi)下载最新的Struts2框架压缩包。
  2. 解压Struts2框架到自定义的目录下。

第一个示例:Hello World

在完成环境的搭建之后,我们可以来创建一个基本的Hello World应用程序。

创建项目

  1. 在Tomcat服务器的webapps目录下创建一个新的文件夹,例如 helloworld,作为我们的项目目录。
  2. 在该目录下新建一个WEB-INF目录,再在WEB-INF目录下新建一个classes目录和一个lib目录。
  3. 将Struts2的核心库struts2-core-x.x.x.jar复制到lib目录下。

创建配置文件

  1. WEB-INF目录下新建一个struts.xml配置文件。
  2. struts.xml中配置一个名为hello的Action,如下:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
        "http://struts.apache.org/dtds/struts-2.5.dtd">
<struts>
    <package name="default" extends="struts-default">
        <action name="hello" class="com.example.HelloWorldAction" method="execute">
            <result name="success">/hello.jsp</result>
        </action>
    </package>
</struts>

创建Action类

  1. classes目录下创建一个com.example包,然后在该包下创建一个HelloWorldAction类。
  2. HelloWorldAction类中实现execute方法,方法体返回字符串类型的SUCCESS常量。
package com.example;

public class HelloWorldAction {
    public String execute() {
        return "success";
    }
}

创建JSP页面

  1. helloworld目录下创建一个名为hello.jsp的JSP页面。
  2. hello.jsp中输出Hello World字符串。
<%@ page contentType="text/html; charset=utf-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>Hello World</title>
</head>
<body>
    <h1>Hello World</h1>
</body>
</html>

部署和访问

  1. 启动Tomcat服务器。
  2. 在浏览器中访问http://localhost:8080/helloworld/hello.action,即可看到Hello World的输出。

第二个示例:用户登录

接下来,我们将创建一个用户登录示例,演示如何使用Struts2框架的表单提交和表单验证功能。

创建项目

首先,我们需要在上面的示例基础上创建项目和相关目录结构。

创建配置文件

struts.xml配置文件中添加一个名为login的Action。

<action name="login" class="com.example.LoginAction" method="execute">
    <result name="input">/login.jsp</result>
    <result name="success">/welcome.jsp</result>
    <result name="error">/login.jsp</result>
</action>

创建Action类

com.example包下创建一个LoginAction类,在该类中添加以下代码:

private String username;
private String password;
private String message;

public String execute() {
    if ("admin".equals(username) && "123456".equals(password)) {
        message = "欢迎," + username;
        return SUCCESS;
    }
    message = "用户名或密码不正确";
    return ERROR;
}

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;
}

public String getMessage() {
    return message;
}

创建JSP页面

helloworld目录下创建login.jsp页面和welcome.jsp页面。

login.jsp

<%@ page contentType="text/html; charset=utf-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>用户登录</title>
</head>
<body>
    <h1>用户登录</h1>
    <s:form action="login">
        <s:textfield name="username" label="用户名" />
        <s:password name="password" label="密码" />
        <s:submit name="submit" value="登录" />
    </s:form>
    <s:if test="message != null">
        <p><s:property value="message" /></p>
    </s:if>
</body>
</html>

welcome.jsp

<%@ page contentType="text/html; charset=utf-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>欢迎</title>
</head>
<body>
    <h1><s:property value="message" /></h1>
</body>
</html>

部署和访问

启动Tomcat服务器,然后在浏览器中访问http://localhost:8080/helloworld/login.jsp即可看到登录页面。输入用户名和密码,点击登录按钮,如果登录成功,将跳转到welcome.jsp页面并显示欢迎,用户名的消息,如果登录失败,将继续留在login.jsp页面,并显示用户名或密码不正确的消息。

以上为“struts2入门Demo示例”的完整攻略,包含了两个示例:Hello World和用户登录。希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2入门Demo示例 - Python技术站

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

相关文章

  • IDEA解决maven包冲突easypoi NoClassDefFoundError的问题

    我将为您详细讲解如何解决IDEA中使用maven引入easypoi后出现NoClassDefFoundError的问题。 问题描述 当我们在使用IDEA开发时,使用Maven引入easypoi后,导入相关类时遇到“NoClassDefFoundError”异常报错。因为整个项目中可能会存在多个版本的jar包导致依赖冲突,从而导致该问题的出现。 解决方案 为了…

    Java 2023年5月20日
    00
  • java操作json对象出现StackOverflow错误的问题及解决

    如果你在 Java 中操作 JSON 对象时遇到 StackOverflow 错误,可能是因为实体类中的字段中包含了一个指向同一类型的对象,而这个对象又有一个指向同一类型的对象……以此类推,最终导致了无限循环。这将导致无限递归,直到抛出 StackOverflow 错误。 解决这种情况的最简单方式是使用“@JsonManagedReference”和…

    Java 2023年5月26日
    00
  • jsp中定义和使用方法示例介绍

    下面详细讲解“JSP中定义和使用方法示例介绍”的攻略。 一、定义和使用方法 1.1 定义方法 在JSP中定义方法,可以使用<%! %>标签。例如: <%! public int add(int num1, int num2) { return num1 + num2; } %> 以上代码定义了一个名为“add”的方法,该方法返回两个整…

    Java 2023年6月15日
    00
  • java Hibernate延迟加载

    Java Hibernate是一个流行的对象关系映射(ORM)框架,可以将Java对象映射到关系型数据库中。Hibernate延迟加载能够让我们在处理大型数据集时提升性能,同时也可以减少数据库的访问次数。在本文中,我将详细讲解Java Hibernate延迟加载的完整攻略。 什么是延迟加载 Hibernate中的延迟加载是指在需要使用某个对象时才会从数据库中…

    Java 2023年5月19日
    00
  • Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析

    针对Android系统进程间通信Binder机制在应用程序框架层的Java接口源代码分析的完整攻略,可以按照以下步骤进行: 1. 确定研究目标 首先需要明确研究目标,即了解在Android系统中,进程间通信的机制及其具体实现方式。这里主要研究Binder机制在应用程序框架层的Java接口源代码分析。 2. 学习Binder机制原理 接下来需要学习Binder…

    Java 2023年5月26日
    00
  • 常见的Java代码优化技巧有哪些?

    常见的Java代码优化技巧主要包括以下几个方面: 1.减少内存使用: Java程序运行时需要占用内存,因此减少内存使用可以提高Java程序的运行速度。具体方法包括: 避免使用过多的静态变量,因为静态变量会在程序启动时立即进行初始化,从而占用额外的内存空间。 避免在循环中创建多余的对象,因为对象创建也需要占用内存。 使用轻量级的容器,如ArrayList代替V…

    Java 2023年5月11日
    00
  • 一篇超详细的Spring Boot对jdbc支持的文章

    下面是我对这个主题的完整攻略: 一、简介 在介绍 Spring Boot 对 JDBC 支持的同时,我们需要先了解 JDBC 是什么。JDBC (Java DataBase Connectivity) 是 Java 语言中操作关系型数据库的 API。Spring Boot 建立在 Spring 框架的基础之上,因此 Spring Boot 是通过 Sprin…

    Java 2023年5月20日
    00
  • Java Apache Commons报错“JXPathException”的原因与解决方法

    “JXPathException”是Java的Apache Commons类库中的一个异常,通常由以下原因之一引起: 无效的XPath表达式:如果XPath表达式无效,则可能会出现此错误。在这种情况下,需要检查XPath表达式以解决此问题。 无效的对象模型:如果对象模型无效,则可能会出现此错误。在这种情况下,需要检查对象模型以解决此问题。 以下是两个实例: …

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