`

Struts2 温习笔记 002

阅读更多

 第一个Struts2示例

前面搭建好Struts2的开发环境之后,我们应该运行一个很简单的示例。来理解分析Struts2框架的开发过程和大致的运行原理。

首先我们大致了解一下Struts2的运行流向图:



 

  • 大致解释一下Struts2的基本运行流向。
  1. 首先Web Server接受客户request。
  2. 根据web.xml中的设置,由org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter过滤所有的请求,过滤器根据struts.xml中的配置调用与请求对应的action。
  3. action根据execute方法返回的字符串调用相应的jsp页面,响应给客户。

了解到Struts2的运行流向之后,我们开始入手开发第一个运行示例。

  1. 首先编写action:

由于strust2已经采用了非侵入式的设计,在设计action的时候不会与servlet和struts有耦合的地方。

在编写action类的时候,只需要在类中定义个返回String的execute方法即可。

本例中HelloWorld.java:

package com.jiabao.struts2;

public class HelloWorld {
	private String msg;
	
	public String getMessage(){
		return msg;
	}
	
	public String execute(){
		msg= "Struts2的HelloWorld!";
		return "success";
	}
}

 

说明:HelloWorld.java即为基本的action类。在当中,设置了一个字符串变量,以供在jsp页面中调用显示。后面会用到这个变量。

 

2.在struts.xml文件中注册action类

 

<?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="default" namespace="/validation" extends="struts-default">
    	<action name="helloworld" class="com.jiabao.struts2.HelloWorld">
    		<result name="success">/WEB-INF/pages/helloworld.jsp</result>
    	</action>
     </package>
</struts>

 

 说明:

package的作用类似于java中的package,来为具有相同逻辑功能代码的一组类。

 

可以看到在struts.xml添加了一个package标签,当中name属性为必须且要唯一,作为在struts.xml的一个标识。

namespace是声名一组action的命名空间,默认为""。(在struts1中,设置action的时候往往会有如下的配置代码,

"

<action path="/validation/helloworld"/>

<action path="/validation/Login"/>

"

可以看的出,在struts1中的配置文件中产生了重复的代码。而Struts2则在使用命名空间来改善这种代码方式。通过namespace的设置,可以统一配置具有相同访问路径的路径地址,如上struts.xml配置,访问就需要/validation/helloworld.

 

而extends标签继承了struts-default,这是值得推荐的。因为Struts2采用了拦截器模式,所以只有继承了struts-default,才可以使用到Struts2中所带有的核心功能。(struts-default包含在struts-core-*.jar核心包中,其中定义了很多完成struts2核心功能的拦截器)

 

在action标签里,可以定义一个method属性,例如<action name="helloworld" class="com.jiabao.struts2.HelloWorld" method="execute">

属性标识,在执行action的时候调用的方法。默认为execute,所以可以不显示的标出。

3.编写jsp页面

HelloWorld.jsp页面代码

${message}

 

上面使用了EL表达式。来调用action中的message。细心就会发现在action定义的变量时msg,而另外有一个getMessage方法返回msg变量的内容,这里也是Struts2的一个“规则”,即使页面端返回的是getMessage方法返回的值,而和变量msg没有任何关系。

这里EL表达式是在jsp2.0之后才支持的,所以使用jsp2.0以前标准的服务器并不支持以上EL代码。

 

 

插个小技巧:

当编辑struts.xml的时候如果没有代码提示,可能是因为eclipse并没有找到"http://struts.apache.org/dtds/struts-2.0.dtd",我们可以通过以下步骤手动设置。

在本地找到"struts-2.0.dtd"文件,Window-preferences-xml-xml Catalog添加这个文件即可。

  • 大小: 14.9 KB
分享到:
评论

相关推荐

    struts2学习笔记(完美总结)——转自OPEN经验库

    Struts2是一个强大的Java web应用程序开发框架,它遵循Model-View-Controller (MVC)设计模式,用于构建可维护性和可扩展性高的企业级应用。本文将深入探讨Struts2的核心概念,包括Action、Result、配置文件、OGNL与...

    张龙圣思园struts2学习笔记word

    张龙圣思园的Struts2学习笔记,无疑为Java开发者提供了一份宝贵的参考资料,它可能涵盖了Struts2的基础概念、核心组件、配置方式以及实战技巧。 首先,让我们深入了解Struts2的核心特性。Struts2是MVC(Model-View-...

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    Struts2学习笔记

    根据给定的文件信息,以下是对Struts2学习笔记中涉及的关键知识点的详细解析: ### Struts2框架概览 #### MVC模式的理解与演进 Struts2是基于MVC(Model-View-Controller)模式设计的一种Java Web开发框架。在MVC...

    struts2课程笔记

    本课程笔记主要涵盖了Struts2的基础概念、核心功能及其工作流程。 首先,Struts2的处理流程是通过一系列的组件协作完成的,包括Filter Dispatcher(过滤器调度器)、Action、Interceptor(拦截器)和Result。当用户...

    struts2学习笔记.doc

    ### Struts2学习笔记知识点概览 #### 一、环境搭建 **1.1 Struts2简介** - **Struts2概述**:Struts2是一个开源的MVC框架,它结合了Struts 1.x、WebWork和其他一些框架的优点。Struts2的主要目标是简化Web应用程序...

    struts2 学习笔记 实战

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中扮演着重要的角色。本文将深入探讨Struts2的核心概念,包括Namespace、标签、Action以及它们在实际开发中的应用。 一、Namespace ...

    struts2学习笔记黑马程序员

    ### Struts2学习笔记之文件上传与Ajax开发 #### Struts2文件上传 **文件上传简介** 文件上传是Web应用中常见的功能之一,Struts2框架内置了对文件上传的支持,使得开发者能够轻松地实现这一功能。为了确保文件...

    struts2学习笔记3数据类型转换

    struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换struts2学习笔记3数据类型转换

    Struts2框架笔记

    ### Struts2框架知识点 #### Struts2框架概述 Struts2是一个开源的Web应用程序框架,基于MVC(Model-View-Controller)架构模式。它为Java Web开发者提供了一个强大的平台来构建高度可扩展的应用程序。Struts2的...

    struts2综合笔记

    ### Struts2 综合知识点解析 #### 一、Struts2 概述与历史背景 **Struts2** 是一款流行的 Java Web 开发框架,它遵循 MVC (Model-View-Controller) 设计模式,旨在简化 Web 应用程序的开发过程。Struts2 提供了一...

    struts2学习笔记(1)

    ### Struts2学习笔记知识点详解 #### 一、Struts2框架的基本引入步骤 ##### 1. 导入Struts2相关Jar包 在引入Struts2框架时,首先需要将Struts2的相关Jar包导入到项目的类路径中。这些Jar包通常包括核心库以及其他...

    struts2学习笔记

    Struts2是一个强大的MVC(Model-View-Controller)框架,它在Java Web开发中广泛使用,提供了丰富的功能和灵活性。下面将详细讲解Struts2的一些核心知识点。 **一.Struts2核心文件:struts.xml配置** Struts2的...

    struts2四天的学习笔记

    13. ** strut2四天笔记**:这份学习笔记可能涵盖了以上所有知识点,包括如何创建Action,配置struts.xml,使用OGNL表达式,处理异常,以及实践中的各种技巧和最佳实践。 在四天的学习过程中,你应该通过实践和理解...

    北京圣思园Struts2 全套笔记 课件 详解

    本资源“北京圣思园Struts2 全套笔记 课件 详解”包含了深入学习Struts2所需的关键知识点,旨在帮助开发者全面理解和掌握该框架。 首先,我们来了解一下Struts2的核心概念: 1. **Action类**:在Struts2中,Action...

    黑马程序员Struts2笔记

    本笔记主要涵盖了Struts2的基础知识,包括但不限于配置、Action、拦截器、结果类型以及异常处理等内容。 1. **Struts2框架简介** Struts2是Apache软件基金会的一个开源项目,它是Struts1的升级版,弥补了Struts1在...

    Struts2_day03笔记

    学习Struts2第三天笔记

    Struts2_day04笔记

    学习Struts2第四天笔记

Global site tag (gtag.js) - Google Analytics