在默认的配置文件struts.xml 中加入如下配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<package name="itcast" namespace="/test" extends="struts-default">
<action name="helloworld" class="cn.itcast.action.HelloWorldAction" method="execute" >
<result name="success">/WEB-INF/page/hello.jsp</result>
</action>
</package>
</struts>
在struts2框架中使用包来管理Action,包的作用和java中的类包是非常类似的,它主要用于管理一组业务功能相关的action。在实际应用中,我们应该把一组业务功能相关的Action放在同一个包下。
配置包时必须指定name属性,该name属性值可以任意取名,但必须唯一,他不对应java的类包,如果其他包要继承该包,必须通过该属性进行引用。包的namespace属性用于定义该包的命名空间,命名空间作为访问该包下Action的路径的一部分,如访问上面例子的Action,访问路径为:/test/helloworld.action。 namespace属性可以不配置,对本例而言,如果不指定该属性,默认的命名空间为“”(空字符串)。
通常每个包都应该继承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文件。
包还可以通过abstract=“true”定义为抽象包,抽象包中不能包含action。
例子中使用到的cn.itcast.action.HelloWorldAction类如下:
package cn.itcast.action;
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";
}
}
例子中使用到的/WEB-INF/page/hello.jsp如下:
<%@ page language="java" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>第一个struts2应用</title>
</head>
<body>
${message } <br>
</body>
</html>
可以使用EL表达式访问Action中的属性。
访问HelloWorld应用
在struts1中,通过<action path=“/test/helloworld”>节点的path属性指定访问该action的URL路径。在struts2中,情况就不是这样了,访问struts2中action的URL路径由两部份组成:包的命名空间+action的名称,例如访问本例子HelloWorldAction的URL路径为:/test/helloworld (注意:完整路径为:http://localhost:端口/内容路径/test/helloworld)。另外我们也可以加上.action后缀访问此Action。
分享到:
相关推荐
在创建第一个Struts2应用时,通常会从一个简单的"HelloWorld"实例开始。在`web.xml`配置文件中,我们定义了一个名为`struts2`的过滤器,它会捕获所有的HTTP请求并将其转发给Struts2框架处理。这个过滤器的类在2.1.8...
描述中提到的“传智的Struts2”同样暗示了这是一个关于Struts2的教育或学习资源,可能包括视频教程、讲义、实战项目等,旨在帮助学习者掌握如何使用Struts2构建Web应用程序。 标签“传智struts2”进一步确认了这与...
Struts2是一个开源的、用于开发Java Web应用程序的MVC(Model-View-Controller)框架。它是Struts1的升级版,不仅继承了Struts1的优点,还在其基础上进行了大量的改进和增强。Struts2框架的主要特点包括但不限于: ...
创建第一个Struts2应用,你需要在struts.xml中定义Action和结果,以及可能的拦截器链。Action类将处理用户的请求,而结果则定义了Action执行后如何展示给用户。例如,你可以定义一个简单的Hello World Action如下: ...
7. **编写第一个Action**:创建一个Action类,实现你需要的业务逻辑,并指定结果页面。 8. **编写结果页面**:创建一个JSP页面,用于显示Action执行后的结果。 9. **配置struts.xml**:在struts.xml中配置Action,...
黑马程序员的笔记中可能包含了如何创建一个简单的Struts2应用,从HelloWorld实例到实际的表单提交、文件上传下载等实战案例,帮助初学者快速掌握Struts2的基本用法。 通过学习这些笔记,开发者将能够理解Struts2的...
### 传智播客Struts2全程学习笔记 #### Struts2的优点 1. **无侵入式设计**:与Struts1相比,Struts2的设计更为先进,它不依赖于Servlet API或Struts API,这使得Struts2更加灵活且易于集成到其他环境中。在代码...
Struts2是一个强大的Java Web应用程序框架,由Apache软件基金会维护,用于构建企业级的MVC(Model-View-Controller)架构应用。它继承了Struts1的优点并解决了其存在的问题,提供了一种更加灵活和可扩展的解决方案。...
本资源“自学传智博客struts2-黎活明-源码-第02讲_02第一个struts2应用开发_DemoStruts2.rar”提供了黎活明老师在传智博客上讲解的第一个Struts2应用的开发示例,帮助初学者理解并实践Struts2的核心概念和使用方法。...
Struts是Apache软件基金会 Jakarta项目下的一个开源框架,主要用于构建基于Java的企业级Web应用程序。它引入了MVC(Model-View-Controller)设计模式,帮助开发者更好地组织代码结构,提高开发效率,同时提供了强大...
综上所述,“传智播客课件笔记集合”不仅是一个包含了.NET技术学习、数据库技能提升和求职面试准备的综合性学习资源,它还是帮助程序员建立扎实技术基础、更新知识体系和为求职做好充分准备的良师益友。无论是编程...
自学传智博客struts2-黎活明-源码-第01讲_01介绍struts2及struts2开发环境的搭建_DemoStruts2.rar; 笔记地址:http://www.guloulou.com/?p=1253
struts2-传智播客-课件
传智播客 struts2详细课件.ppt
1. **Hello World示例**:最基本的Struts2应用,展示如何创建第一个Action,处理请求并返回结果。 2. **表单验证**:使用Struts2的验证框架对用户输入进行校验。 3. **文件上传下载**:实现文件的上传和下载功能,...
传智博客__黎活明-struts2.ppt ,供学习配套视频
MyBatis是一个优秀的持久层框架,它简化了Java应用程序与关系型数据库交互的复杂性。原名为iBatis,起初作为Apache的一个开源项目,后于2010年迁移到Google Code并更名为MyBatis。 MyBatis的主要优势在于,它能够将...