struts2开发流程及详细配置

Struts2开发流程及详细配置

简介

Struts2是一种基于MVC设计模式的web框架,它是从Struts1框架升级而来。与Struts1相比,Struts2更加灵活、可扩展和易于使用。Struts2的开发流程涉及到安装、配置和实现。该攻略旨在帮助开发者了解Struts2框架的开发流程及详细配置。

开发流程

下面是Struts2的基本开发流程:

  1. 确认开发环境:开发者需要安装JDK、Tomcat和Eclipse。

  2. 创建一个Struts2项目:通过Eclipse新建一个Web项目,在项目中导入Struts2包。

  3. 配置Struts2框架:在项目根目录下创建struts.xml文件,配置该文件以定义应用程序的基础架构,包括拦截器、动作映射和结果。

  4. 创建动作类:创建动作类,在该类中实现从页面传递的数据并与业务逻辑进行交互,最终生成结果,可以通过在动作类中定义setter和getter方法以获取或设置数据值。

  5. 创建视图:开发者需要为应用程序定义一个视图或一组视图来呈现结果,这一步需要创建相应的JSP页面。

  6. 配置访问页面:在struts.xml文件中配置相应的动作映射,将请求映射到具体的动作类及其方法。

  7. 运行应用程序:在启动Tomcat服务器之前,开发者需要通过配置web.xml文件将Struts2作为Web项目的默认Servlet,这样Tomcat服务器才能将请求转发给Struts2框架进行处理。

详细配置

配置Struts2框架

在src目录下新建struts.xml文件,代码如下:

<?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>
  <constant name="struts.action.extension" value="html"/>
  <constant name="struts.devMode" value="true"/>

  <!-- 定义interceptor -->
  <interceptors>
    <interceptor name="myInterceptor" class="com.example.MyInterceptor"></interceptor>
  </interceptors>

  <!-- 定义action映射 -->
  <action name="hello" class="com.example.HelloAction">
    <interceptor-ref name="myInterceptor"/>
    <result name="success">/hello.jsp</result>
  </action>

</struts>

该文件中包含了以下配置信息:

  1. 声明默认扩展名,这里为.html。

  2. 声明是否处于开发模式,默认为false,开发者可以在开发阶段设置为true开启调试模式。

  3. 配置拦截器,声明了名称为myInterceptor的拦截器。

  4. 定义动作映射,名称为Hello,将请求映射到HelloAction动作类中的方法。

其中,HelloAction类和MyInterceptor类均需要开发者自行创建。

创建动作类

动作类是Struts2应用程序中的核心组件之一,它处理与业务逻辑相关的操作并响应请求。下面是一个简单的HelloAction示例:

package com.example;

public class HelloAction{
    private String message;   // 定义message变量

    public String execute()throws Exception{
        message="Hello world";   // 对message进行值的赋值

        return "success";    // 返回结果名
    }

    public String getMessage(){
        return message;   // 返回message变量
    }

    public void setMessage(String message){
        this.message = message;   // 设置message变量
    }
}

通过以上代码,我们可以创建一个执行Hello world字符串输出的操作。

创建视图

开发者需要为应用程序定义一个视图或一组视图来呈现结果,这一步需要创建相应的JSP页面。下面是一个简单的hello.jsp示例:

<%-- hello.jsp --%>
<html>
<head>
  <title>Hello page</title>
</head>
<body>
  ${message}
</body>
</html>

在hello.jsp中定义了一个message变量,它将被动态输出到页面上。

配置动作映射

在struts.xml文件中添加如下代码,将请求映射到HelloAction类及其方法:

<action name="hello" class="com.example.HelloAction">
  <result name="success">/hello.jsp</result>
</action>

示例

示例一:Hello World

下面是一个简单Hello World的示例实现:

  1. 安装JDK、Tomcat和Eclipse。

  2. 使用Eclipse新建一个Web项目,并导入Struts2包。

  3. 在该项目的src目录下新建HelloAction类,代码如下:

package com.example;

public class HelloAction{
    private String message;
    public String execute()throws Exception{
        message="Hello world";
        return "success";
    }
    public String getMessage(){
        return message;
    }
    public void setMessage(String message){
        this.message = message;
    }
}
  1. 在该项目的WebContent目录下新建hello.jsp页面,代码如下:
<%-- hello.jsp --%>
<html>
<head>
  <title>Hello page</title>
</head>
<body>
  ${message}
</body>
</html>
  1. 在src目录下新建struts.xml文件,配置动作映射,代码如下:
<action name="hello" class="com.example.HelloAction">
  <result name="success">/hello.jsp</result>
</action>

该配置将请求映射到HelloAction类及其方法,并使用hello.jsp页面展示结果。

示例二:表单验证

下面是一个表单验证的示例实现:

  1. 安装JDK、Tomcat和Eclipse。

  2. 使用Eclipse新建一个Web项目,并导入Struts2包。

  3. 在该项目的src目录下新建Person类,代码如下:

package com.example;

import java.util.Date;

public class Person {
    private String name;
    private Integer age;
    private Date birthday;
    private String email;
    // 这里省略getter和setter方法
}
  1. 在该项目的src目录下新建RegisterAction类,代码如下:
package com.example;

import com.opensymphony.xwork2.ActionSupport;
import java.util.Date;

public class RegisterAction extends ActionSupport{
    private Person person;

    public String execute() throws Exception{
        // 业务逻辑处理
    }

    public Person getPerson(){
        return person;
    }
    public void setPerson(Person person){
        this.person = person;
    }

    // 验证表单输入参数
    public void validate(){
        if(getPerson()!=null && person.getAge()< 0){
            addFieldError("person.age","年龄输入不正确!");
        }
        if(getPerson()!=null && person.getBirthday()==null){
            addFieldError("person.birthday","生日不能为空!");
        }
        if(getPerson()!=null && person.getName()==null || "".equals(person.getName().trim())){
            addFieldError("person.name","姓名不能为空!");
        }
        if(getPerson()!=null && person.getEmail()==null || "".equals(person.getEmail().trim())){
            addFieldError("person.email","邮箱不能为空!");
        }
    }
}
  1. 在该项目的WebContent目录下新建register.jsp页面,并添加表单验证,代码如下:
<%-- register.jsp --%>
<html>
<head>
  <title>Register page</title>
</head>
<body>
  <s:form action="register">
    <s:textfield name="person.name" label="姓名"></s:textfield>
    <s:textfield name="person.age" label="年龄"></s:textfield>
    <s:textfield name="person.birthday" label="生日"/>
    <s:textfield name="person.email" label="邮箱"></s:textfield>
    <s:submit value="提交"/>
  </s:form>
</body>
</html>
  1. 在src目录下新建struts.xml文件,配置动作映射,代码如下:
<action name="register" class="com.example.RegisterAction">
  <result name="input">/register.jsp</result>
  <result name="success">/success.jsp</result>
</action>

该配置将请求映射到RegisterAction类及其方法,并在该类中添加了表单验证,将错误信息显示在页面上。

结论

以上就是Struts2的开发流程及详细配置的完整攻略,希望对您有所帮助。注意,这只是一个简单的Struts2示例,实际应用中可能需要更复杂的代码和配置。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:struts2开发流程及详细配置 - Python技术站

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

相关文章

  • java编译器和JVM的区别

    Java编译器和JVM(Java虚拟机)是Java语言的两个核心组成部分,它们分别承担着Java程序的编译和执行任务。下面将详细讲解它们的区别: Java编译器 Java编译器是负责把Java源代码(.java)编译成Java字节码(.class)的工具。在Java的编译过程中,Java编译器会将源代码解析成对应的抽象语法树,然后将抽象语法树翻译成字节码,最…

    Java 2023年5月26日
    00
  • 详解如何在Java中实现懒加载

    使用懒加载(Lazy Loading)可以有效地减少程序的资源占用,同时提高程序启动和运行时的响应速度。在Java中,懒加载常用于操作系统资源、数据库连接或其他需要大量资源的操作。 以下是如何在Java中实现懒加载的详细攻略: 1. 创建需要懒加载的对象 首先,需要在Java代码中创建一个需要懒加载的对象,这个对象可以是任何Java对象,例如一个数据库连接、…

    Java 2023年5月27日
    00
  • springboot maven 打包插件介绍及注意事项说明

    Spring Boot Maven打包插件介绍 Spring Boot使用了Maven作为构建工具,通过Maven进行项目的编译、依赖管理和打包部署等操作,其中Maven的打包插件在Spring Boot中有着非常重要的作用。 Maven的打包插件主要用于将项目打成可执行的JAR或WAR包,Spring Boot将其进一步封装为了一些特定的插件,以适应Spr…

    Java 2023年6月2日
    00
  • java中struts2实现文件上传下载功能

    下面是java中struts2实现文件上传下载功能的完整攻略: 一、文件上传功能的实现 1. 安装文件上传插件 在struts2中实现文件上传功能需要依赖文件上传插件,可以通过以下方式进行安装: 在pom.xml中加入以下依赖: <dependency> <groupId>org.apache.struts</groupId&g…

    Java 2023年5月20日
    00
  • Java中的UnChecked异常有哪些?

    Java中的异常分为Checked异常和Unchecked异常。其中,Checked异常需要在代码中进行显式处理或在方法签名中声明,而Unchecked异常则不需要。 Java中常见的Unchecked异常有以下几种: NullPointerException (空指针异常) 当尝试调用一个空对象的方法或访问空对象的属性时,会抛出NullPointerExc…

    Java 2023年4月27日
    00
  • 一篇带你入门Java垃圾回收器

    一篇带你入门Java垃圾回收器 什么是Java垃圾回收器 Java垃圾回收器(Garbage Collector)是Java虚拟机(JVM)的重要组成部分。它管理内存分配和回收,以确保在应用程序运行期间,不会发生内存泄漏或溢出等问题。 垃圾回收器的工作原理 垃圾回收的核心是判断哪些内存块是“垃圾”,然后将其回收。在JVM中,垃圾回收器通过判断对象是否还被引用…

    Java 2023年5月26日
    00
  • Spring Boot实战之数据库操作的示例代码

    下面我为大家详细讲解一下“Spring Boot实战之数据库操作的示例代码”的完整攻略。 1. 环境准备 在开始实战前,先确保电脑中已经安装好了Java和Spring Boot。另外,如果需要连接数据库,还需要安装相应的数据库驱动程序,例如MySQL的驱动程序。 2. 创建Maven项目 使用Maven创建一个Spring Boot项目,添加依赖项,以便在代…

    Java 2023年5月20日
    00
  • 微信小程序实现多选功能

    微信小程序实现多选功能的完整攻略可以分为以下步骤: 1.在页面中定义 checkbox 组件 首先需要在页面的 wxml 文件中定义多组 checkbox 组件,每个复选框都应该设置不同的 value 值以便于选项的区分,同时为了便于管理,可以用相同的 name 属性将多个选项组成一个组. 下面是一个示例代码: <checkbox-group bind…

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