因为struts2是通过filter启动的,而web.xml配置文件中的StrutsPrepareAndExecuteFilter的init()方法会读取类路径下默认的配置文件struts.xml完成初始化操作,故我们需要首先配置struts.xml文件
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="struts" namespace="/test" extends="struts-default"> <action name="helloworld" class="cn.struts.demo.HelloWorldAction" method="execute"> <result name="success">/WEB-INF/page/hello.jsp</result> </action> </package> </struts>
下面对struts.xml配置文件进行说明:
1、在struts2框架中使用包来管理Action,包的作用和java中的类包是非常类似的,它主要用于管理一组业务功能相关的action。在实际应用中,我们应该把一组业务功能相关的Action放在同一个包下;
2、配置包时必须指定name属性,该name属性值可以任意取名,但必须唯一,他不对应java的类包,如果其他包要继承该包,必须通过该属性进行引用。包的namespace属性用于定义该包的命名空间,命名空间作为访问该包下Action的路径的一部分,如访问上面例子的Action,访问路径为:/test/helloworld.action。 namespace属性可以不配置,对本例而言,如果不指定该属性,默认的命名空间为“”(空字符串);
3、通常每个包都应该继承struts-default包,因为Struts2很多核心的功能都是拦截器来实现。如:从请求中把请求参数封装到action、文件上传和数据验证等等都是通过拦截器实现的。 struts-default定义了这些拦截器和Result类型。可以这么说:当包继承了struts-default才能使用struts2提供的核心功能。 struts-default包是在struts2-core-2.x.x.jar文件中的struts-default.xml中定义。 struts-default.xml也是Struts2默认配置文件。 Struts2每次都会自动加载 struts-default.xml文件;
4、包还可以通过abstract=“true”定义为抽象包,抽象包中不能包含action。
配置文件中的HelloWorldAction如下:
package cn.struts.demo; public class HelloWorldAction { private String message; public String getMessage() { return message; } public void setMessage(String message) { this.message = message; } public String execute() { this.message = "我的第一个struts2应用"; return "success"; // 对应struts配置文件中result视图 } }
配置文件中的hello.jsp文件如下:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>我的第一个struts2应用</title> </head> <body> <!-- 用el表达式可以获取到action里面的值,此处的message说明action中有一个setMessage()的方法 --> ${message } </body> </html>
至此,我们的应用已开发完成,现在需要访问我们的HelloWorld应用,访问struts2中action的URL路径由两部份组成:包的命名空间+action的名称,例如访问本例子HelloWorldAction的URL路径为:/test/helloworld (注意:完整路径为:http://localhost:端口/内容路径/test/helloworld)。另外我们也可以加上.action后缀访问此Action。把项目(见附件)部署到tomcat下面,在地址栏中输入http://localhost:8080/strutsdemo/test/helloworld,页面显示 我的第一个struts2应用
流程:
1、首先客户端向服务端发出一个请求
2、请求经过StrutsPrepareAndExecuteFilter过滤器,过滤器init()方法会读取类路径下默认的配置文件struts.xml
3、在struts.xml中寻找对应的action,根据访问的路径,此处是name为helloworld的action
4、执行action中的execute(因为action中配的是method="execute")
5、执行execute方法,返回result name="success"的视图,即hello.jsp
6、页面显示 我的第一个struts2应用
相关推荐
在本教程中,我们将深入探讨Struts2的基础知识,通过一个"Struts2-HelloWorld"实例来演示如何在实际项目中应用Struts2。 首先,让我们了解Servlet。Servlet是Java编程语言中用于扩展服务器功能的接口。它处理HTTP...
这个"jamesby-struts2-helloworld.rar"压缩包提供了一个基础的Struts2入门示例,名为“helloworld”,对于初学者了解和学习Struts2的工作原理非常有帮助。 首先,我们来看看"index.jsp"。这通常是一个应用的入口点...
map.put("message", "Hello, World!"); return "success"; // 这里返回"json"即可 } } ``` 当客户端请求以".json"结尾的URL时,Struts2会调用此Action,并将结果以JSON格式响应。 在实际开发中,Struts2 JSON ...
在这个例子中,当用户访问`/hello` URL时,`HelloWorldAction`的`execute`方法会被调用,然后重定向到`HelloWorld.jsp`页面。 通过这个简单的示例,我们了解了Struts2的基本工作流程和配置需求。实际开发中,Struts...
<description xml:lang="EN">Simple helloworld portlet ... ``` 此段代码定义了一个名为`HelloPortlet`的Portlet,其中包含了对Portlet的一些基本信息的描述。 #### 六、核心概念 - **MVC架构**:Struts2-...
"Struts2入门使用案例HelloWorld"是一个典型的教程,旨在帮助初学者快速理解并开始使用Struts2框架。下面我们将深入探讨这个案例涉及的关键知识点。 首先,我们需要创建一个Maven工程。Maven是Java项目管理和构建...
在这个"Struts2 HelloWorld"程序中,我们将深入理解Struts2的基本结构和配置,以及如何创建第一个简单的应用。 首先,让我们从环境搭建开始。为了运行Struts2的HelloWorld程序,你需要安装Java Development Kit ...
最后,创建视图页面,如`HelloWorld.jsp`,显示结果: ```jsp ; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <title>Hello World! <h1>Hello, World! ``` 至此,一个简单的Struts2环境就搭建...
在本教程中,我们将深入探讨如何使用Maven来构建一个基本的Struts2 HelloWorld应用。 首先,我们需要确保已经安装了Java Development Kit (JDK) 和 Maven。JDK是Java编程的基础,而Maven则用于构建和管理项目。在...
"Struts2 HelloWorld"是学习Struts2框架的基础教程,通过这个例子,我们可以了解Struts2的基本配置和工作流程。 首先,让我们从项目结构开始。在"struts2_helloWorld"压缩包中,通常会包含以下几个关键文件: 1. *...
第一个struts框架的完成,使用eclipse写的。第一次写其实是在半年前,现在再重新写,真是错误连篇,最讨厌的是报404错误。首先检查tomcat部署时,有什么错误,针对性解决,大多是因为jar包多了或者少了。有时,jar包...
要创建一个简单的Hello World程序,你需要遵循以下步骤: 1. 导入必要的jar包。这些jar包位于struts-2.3.15.3/apps/struts2-blank/WEB-INF/lib目录下,包含了运行Struts2所需的所有依赖。 2. 创建Action类,这是...
在我们的例子中,`HelloWorld.jsp`可能只是一个简单的JSP页面,显示"Hello World": ```jsp ;charset=UTF-8" language="java" %> <title>Hello World <h1><s:property value="message"/> ``` 这里,`...
在MyEclipse中,选择“New”->“Dynamic Web Project”,并命名为`Struts2_HelloWorld`。创建项目后,需要导入Struts2所需的库文件。进入项目属性设置,选择“Java Build Path”->“Libraries”->“Add External ...
在这个案例中,我们聚焦于基于Struts2框架的“HelloWorld”应用。Struts2是一款强大的MVC(Model-View-Controller)框架,广泛应用于Java Web开发,为开发者提供了灵活的控制层结构。 首先,我们需要了解Struts2的...
这个"struts2的helloworld例子"是为初学者准备的一个基础教程,旨在帮助理解Struts2框架的基本工作原理和配置过程。下面将详细阐述这个例子中的关键知识点。 首先,Struts2框架的核心是Action类,它是处理用户请求...
- **第一个Struts 2程序**:编写并运行第一个Hello World应用,了解Action的创建和配置。 - **Action和结果**:深入学习Action的实现,包括结果类型、结果映射等。 - **拦截器**:学习如何使用拦截器进行请求处理,...