`
bit1129
  • 浏览: 1067757 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【Struts2一】Struts2 Hello World

 
阅读更多

Struts2 Hello World应用的基本步骤

创建Struts2的Hello World应用,包括如下几步:

1.配置web.xml

2.创建Action

3.创建struts.xml,配置Action

4.启动web server,通过浏览器访问

 

配置web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>

</web-app>

 

 Struts2通过过滤器Filter的方式处理指定URL格式的请求,

org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

 的init方法默认从WEB-INF/classes目录下查找struts.xml文件并进行解析,所以,struts2.xml文件默认应该放到WEB-INF/classes目录下

 

创建Action

 

package com.tom.actions;

public class HelloWorldAction {
    private String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String executeAction() {
        setMessage("Welcome to the Struts2 world");
        return  "success";
    }
}

 

HelloWorldAction是一个Action,没有特别的东西,executeAction是在struts2.xml中指定来响应某个请求时要执行的方法,返回值必须是String类型(???),“success”这个返回值对应于strtus2.xml中定义的某个页面的转发(forward)

 

 

创建并配置struts.xml

Struts2默认从在WEB-INF/classes目录下加载struts.xml文件

 

<!DOCTYPE struts PUBLIC
        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
        "http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
    <package name="/simple" namespace="/simple" extends="struts-default">
        <action name="helloworld" class="com.tom.actions.HelloWorldAction" method="executeAction">
            <result name="success">/htmls/user.jsp</result>
        </action>
    </package>
</struts>

 

解释:1.package

package类似于Java的包,表示将一个业务模块相关的Action组织到一起,比如针对用户管理模块的Action可以放到name="/user"的包中

2.namespace

namespace是包中所有定义的Action的访问url的共同前缀,比如根据上面的配置,HelloworldAction的访问url是http://ip:port/contextroot/simple/helloworld

3.extends

表示这个包继承自struts-default这个抽象定义的包,抽象包表示package有个属性abtract设置为true,抽象包不能定义任何Action,所有的package都应该直接或者简洁继承struts-default才能称为一个包,都泽就不是一个包,namespace等属性不能起到Action访问url前缀的作用

4.action

定义一个action,package底下可以定义多个action,name属性表示action的名字,也是访问Action的url的最后的一部分。class属性表示要执行的Action的类,method属性表示要执行哪个方法,不指定method属性,则默认执行execute方法

5.result表示结果的响应往哪forward,name值和action的方法返回之匹配,其中的/htmls/usr.jsp表示相对于web应用跟目录的相对路径,

 

 

创建user.jsp

<!DOCTYPE html>
<html>
<head lang="en">
    <meta charset="UTF-8">
    <title>User.jsp</title>
</head>
<body>
    Hello, ${message}
</body>
</html>

 

请求Action

http://localhost:8688/web/simple/helloworld

 

页面的url地址不变,页面显示Welcome to the Struts2 world

 

响应请求的Action的查找顺序

1.当请求http://localhost:8688/web/simple/helloworld时,能够找到HelloWorldAction

2.当请求http://localhost:8688/web/simple/A/B/C/D/helloworld时,同样能够找到HelloWorldAction,原因是struts2在查找响应请求的Action时,对于namespace有一个查找数序:

  a.首先查找值为simple/A/B/C/D的namespace,找到则找helloworld这个action,如果找到,则匹配上;否则,action查找失败,返回404

  b.如果查找不到值为simple/A/B/C的namespace,则找值为simple/A/B/C的namespace,找到则找helloworld这个action,如果找到,则匹配上;否则,action查找失败,返回404

  c.以此类推,最后查找值为simple的namespace,找到则找helloworld这个action,如果找到,则匹配上;否则,action查找失败,返回404(此时匹配了HelloWorldAction的配置,所以能够正确响应)

  d.如果simple这个namepace也没有找到,则查找默认的namespace(值为长度为零的字符串,namespace=""),如果没有找到这个默认的namespace,则返回404;如果找到默认的namespace,则在默认namespace下查找helloworld这个action,如果找到,则匹配上;否则,action查找失败,返回404

3. 根据上面的查找规则http://localhost:8688/web/XXX/simple/helloworld则匹配失败,即HelloWorldAction匹配不上,所以会返回404

4. 根据上面查找顺序的分析,不同package的name不能相同,同时不同package的namespace也不能相同,否则对同一个请求有可能出现有两个以上的Action匹配成功,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    struts2 helloworld

    学习"Struts2 HelloWorld"不仅能够帮助初学者理解框架的基本用法,还能让他们对MVC模式有一个直观的认识。在实际开发中,Struts2提供了大量的插件和拦截器,可以实现复杂的业务逻辑和验证,使其成为企业级应用的理想...

    Struts2的第一个实例helloworld

    在本例中,提供的“Struts2_HelloWorld”压缩包中应该包含了所有必要的库文件,确保项目能够正常运行。 接下来,创建一个简单的Action类。在Struts2中,Action类需要继承自`com.opensymphony.xwork2.ActionSupport`...

    HelloWorld 基于struts2框架

    这就是一个基于Struts2框架的简单“HelloWorld”应用的实现过程。通过这个实例,开发者可以逐步学习到Struts2的MVC模式、Action配置、业务逻辑处理以及视图展示等核心概念,为后续的复杂Web应用开发打下基础。

    Struts2 Helloworld 源代码

    这个"Struts2 Helloworld 源代码"压缩包很可能是为了帮助初学者理解Struts2框架的基础工作原理和配置。 在Struts2的Helloworld示例中,我们通常会看到以下几个关键知识点: 1. **环境配置**:首先,你需要一个Java...

    Struts2 HelloWorld

    创建一个名为`helloWorld.jsp`的文件,其中可以使用Struts2的标签库来显示数据,例如`&lt;s:property value="message"/&gt;`,这个标签会显示`HelloWorldAction`中设置的属性值。 6. **运行与测试** 配置完成后,可以...

    基于struts2的hello world输出

    在我们的例子中,`HelloWorld.jsp`可能只是一个简单的JSP页面,显示"Hello World": ```jsp ;charset=UTF-8" language="java" %&gt; &lt;title&gt;Hello World &lt;h1&gt;&lt;s:property value="message"/&gt; ``` 这里,`...

    学Struts2从HelloWorld示例开始

    从“HelloWorld”示例开始学习Struts2是一个经典的入门方法,因为它能帮助我们理解框架的基本工作原理。 首先,我们需要创建一个展示信息的JSP文件,即`HelloWorld.jsp`。在这个文件中,我们使用Struts2的标签库,...

    struts2的helloworld例子

    这个"struts2的helloworld例子"是为初学者准备的一个基础教程,旨在帮助理解Struts2框架的基本工作原理和配置过程。下面将详细阐述这个例子中的关键知识点。 首先,Struts2框架的核心是Action类,它是处理用户请求...

    struts2 helloworld程序

    在这个"Struts2 HelloWorld"程序中,我们将深入理解Struts2的基本结构和配置,以及如何创建第一个简单的应用。 首先,让我们从环境搭建开始。为了运行Struts2的HelloWorld程序,你需要安装Java Development Kit ...

    struts2.0开发环境的搭建及HelloWorld的演示

    本教程将详细介绍如何在MyEclipse 6.5.0 GA环境中搭建Struts2.0开发环境并实现一个简单的"HelloWorld"应用。 首先,你需要访问Apache Struts的官方网站(http://struts.apache.org/download.cgi#struts216)下载...

    Struts2之Hello World | #struts2

    5. **创建视图页面**:在WebContent目录下创建一个名为HelloWorld.jsp的JSP文件,用于展示结果。添加如下代码: ```jsp ;charset=UTF-8" language="java" %&gt; &lt;title&gt;Hello World ${message} ``` ...

    Struts2入门之HelloWorld

    本篇文章将带你入门Struts2,通过创建一个简单的"HelloWorld"示例来理解其核心概念。 首先,了解Struts2框架的基本组成: 1. **Action类**:这是业务逻辑的入口点,处理用户请求并返回结果。在我们的"HelloWorld...

    用Maven构建Struts2的HelloWorld

    在本教程中,我们将深入探讨如何使用Maven来构建一个基本的Struts2 HelloWorld应用。 首先,我们需要确保已经安装了Java Development Kit (JDK) 和 Maven。JDK是Java编程的基础,而Maven则用于构建和管理项目。在...

    struts2_HelloWorld代码

    这个"struts2_HelloWorld代码"是初学者了解和学习Struts2的一个基础实践,它展示了如何使用Struts2框架创建一个简单的“Hello, World!”应用程序。 在Struts2中,`Action`类是核心组件,它负责处理用户请求。在这个...

    一个struts2的helloworld例子加源码

    在这个"一个struts2的helloworld例子加源码"中,我们将探讨Struts2的基本概念和工作流程,以及如何创建一个简单的Hello, World应用。 首先,了解Struts2框架的核心组件至关重要。Struts2的核心包括Action类、配置...

    Struts2 HelloWorld示例(Maven项目)

    这个“Struts2 HelloWorld示例”是一个基础的Maven项目,旨在帮助初学者理解如何在实际开发环境中设置和运行一个简单的Struts2应用。 首先,让我们了解Maven。Maven是一个项目管理工具,它通过使用一个项目对象模型...

    Struts2入门使用案例HelloWorld

    "Struts2入门使用案例HelloWorld"是一个典型的教程,旨在帮助初学者快速理解并开始使用Struts2框架。下面我们将深入探讨这个案例涉及的关键知识点。 首先,我们需要创建一个Maven工程。Maven是Java项目管理和构建...

    struts2 HelloWorld

    这个"Struts2 HelloWorld"示例是初学者学习Struts2框架的基础教程,通过它,我们可以深入理解Struts2的核心概念和工作原理。 在Java Web开发中,Struts2框架提供了一种组织MVC(Model-View-Controller)架构的方式...

    Struts2系列(一)——永远的HelloWorld

    本篇文章将引导你逐步了解如何使用Struts2创建你的第一个"Hello, World!"应用程序,同时解决项目中可能出现的依赖问题。 在开始之前,确保你已经安装了Java开发环境(JDK)和Apache Maven或Apache Ant,这两个工具...

Global site tag (gtag.js) - Google Analytics