`
zds420
  • 浏览: 202685 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

Struts2 Result 实例

 
阅读更多

 

1:Action result type

常用的四种类型

dispatcher,服务器端跳转

redirect,客户端跳转

chain,动作跳转,服务器端形式

redirectAction,动作跳转,客户端形式

 

2:Action result global results

 

struts.xml

 

 

 <package name="web_result" namespace="/web" extends="struts-default">	
<!-- 全局结果集 -->
		<global-results>
			<result name="globals">/result_file/result.jsp</result>
		</global-results>
		<!-- dispathcher 是服务器端跳转 -->
		<action name="web_result" class="com.result.action.ResultActionDemo01" method="add">
			<result name="success" type="dispatcher">/result_file/result1.jsp</result>
		</action> 
		<!--  redirect 是客户端跳转 -->
		<action name="web_forward" class="com.result.action.ResultActionDemo01" method="add">
			<result name="success" type="redirect">/result_file/result2.jsp</result>
		</action> 
		
		<!-- 客户端跳转  Action的跳转,如果有包则是包之间的跳转 -->
		 
		<action name="web_chain_namespace" class="com.result.action.ResultActionDemo01" method="add">
			
			<!--<result name="success" type="chain">web_action/web</result> -->
			<result name="success" type="chain">
				<param name="namespace">/web_action</param>
		   		<param name="actionName">web</param>
			</result>
		</action> 
		<action name="web_redirect_action" class="com.result.action.ResultActionDemo01" method="add">
			<result name="success" type="redirectAction">web_forward</result>
		</action>  
	</package>
	
	 <package name="extends_action" namespace="/web_extends" extends="web_result">
		<action name="web_extends" class="com.result.action.ResultActionDemo01" >
			<result name="success">/result_file/result4.jsp</result>
		</action> 
	</package>
 

 

java文件

 

 

index.jsp

<a href="/web/web_redirect_action.action?type=3">全局结果集</a><br/>

<a href="/web_extends/web_extends.action?type=3">继承全局结果集</a>

 

 

全局结果集扩展:

 

<global-results>
    <result name="error">/Error.jsp</result>
    <result name="invalid.token">/Error.jsp</result>
    <result name="login" type="redirectAction">Logon!input</result>
</global-results>
 

使用另外一个包中的动态结果使用extends,继承动态结果集的包名。

 

3:Action result dynamic results

 

struts.xml

 

 

 <package name="dynamic" namespace="/dynamic" extends="struts-default">
		<action name="dynamic_action" class="com.result.action.ResultActionDemo01" method="modify">
			<result  name="success">${to_path}</result>
			<result  name="back">/result_file/result.jsp?type=${type}</result>
		</action> 
	</package>
 

 

java 文件

 

package com.result.action;

import com.opensymphony.xwork2.ActionSupport;

public class ResultActionDemo01 extends ActionSupport {
	
	private String type;
	
	public String add() {
		System.out.println("============="+this.type);
		
		if("1".equals(type.toString())) {
			return "success";
		}
		else if("2".equals(type.toString())) {
			return "failure";
		}
		else if("3".equals(type.toString())) {
			return "globals";
		}
		else {
			return SUCCESS; 
		}
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}
}
 

 

 

package com.result.action;

import com.opensymphony.xwork2.ActionSupport;

public class ResultActionDemo01 extends ActionSupport {
	
	private String type;
	private String to_path;
	
	public String add() {
		System.out.println("============="+this.type);
		
		if("1".equals(type.toString())) {
			return "success";
		}
		else if("2".equals(type.toString())) {
			return "failure";
		}
		else if("3".equals(type.toString())) {
			return "globals";
		}
		else {
			return SUCCESS; 
		}
	}
	
	
	public String modify() {
		
		if("home".equals(type.toString())) {
			this.to_path="/result_file/home.jsp";
		}
		else if("details".equals(type.toString())) {
			this.to_path="/result_file/details.jsp";
		}
		else if("contents".equals(type.toString())) {
			this.to_path="/result_file/contents.jsp";		
		}
		else if("list".equals(type.toString())) {
			this.to_path="/result_file/list.jsp";
		} 
		
		if("redirectAction".equals(type.toString())) {
			this.type=type;
			return "back";
		}
		
		return "success"; 
	}
	
	
	
	
	
	
	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}


	public String getTo_path() {
		return to_path;
	}


	public void setTo_path(String to_path) {
		this.to_path = to_path;
	} 
}
 

 

 

index.jsp

 

	<a href="/dynamic/dynamic_action.action?type=home">动态结果集</a>
	<a href="/dynamic/dynamic_action.action?type=redirectAction">结果集带参数</a>

<result>${xxxx}</result>
 

 

在action中保存一个属性,存储具体的结果location

4:带结果参数

   <result>/xx/xx.jsp?xx=xxx</result>

forward:在struts2中只有一个请求在服务器端是可以共享的。

redirect:在strts2中只有一种情况的客户端请求传递参数使用<s:property value="#key.value"/>获取传递过来的参数。

 

 

例如:

 

${}表达式,(不是EL)

 

实验实验,分析分析

 

作业1:

提升能力:

先查Struts2 API 文档,在查GOOGLE

 

作业2:

一手鞋:查看OGNL 标签

 

系统分析设计

 

站在项目经理的角度,

考虑第一问题:界面原型,考虑什么样的架构;

第二问题:设计数据库,

第三问题:确定使用什么架构

第四问题:认真考虑使用什么样子的约定(如:配置,规定,命名等等)

分享到:
评论

相关推荐

    struts2经典实例

    在本实例集中,我们将深入探讨几个经典的Struts2应用示例,这些示例对于初学者和进阶开发者来说都是极具价值的学习资源。 1. **Struts2 Showcase** `struts2-showcase-2.0.1.war` 是一个全面的演示应用,展示了...

    struts2项目实例

    在本“Struts2项目实例”中,我们将深入探讨如何使用Struts2框架来实现基本的CRUD(创建、读取、更新、删除)操作。 首先,Struts2的核心是Action类,它是业务逻辑处理的中心。在这个实例中,每个CRUD操作将对应一...

    struts2登录实例

    本实例将详细讲解如何使用Struts2实现一个简单的登录功能。 一、Struts2框架简介 Struts2是由Apache软件基金会开发的开源框架,它继承了Struts1的优点并解决了其存在的问题。Struts2的核心是Action类和配置文件,...

    STRUTS2站点,STRUTS2学习实例8

    这个"STRUTS2学习实例8"显然旨在深化对Struts2的理解和应用,通过具体的实战项目来教学。让我们深入探讨一下Struts2的关键概念和技术。 首先,Struts2的核心是Model-View-Controller(MVC)设计模式。MVC模式将应用...

    Struts2项目实例

    这个"Struts2项目实例"很可能是为了帮助开发者理解和掌握Struts2框架的实际应用。 首先,让我们深入了解一下Struts2框架的核心特性。Struts2是由Apache软件基金会维护的,它继承了Struts1的优点并解决了其不足,...

    jsp+struts2完整实例

    【标题】"jsp+struts2完整实例"揭示了这个项目是基于Java Web技术栈,主要使用了JSP(JavaServer Pages)和Struts2框架来实现一个完整的应用程序。Struts2是一个开源的MVC(Model-View-Controller)框架,它在Java ...

    Struts2登录实例

    在这个“Struts2登录实例”中,我们将深入理解Struts2的核心概念、配置过程以及如何通过它实现一个基本的用户登录功能。 首先,我们需要在项目中引入Struts2的相关依赖,通常是一个JAR包或者通过Maven或Gradle等...

    struts2 实现登录实例

    本实例将详细讲解如何使用Struts2实现一个简单的登录功能。 一、Struts2基础 Struts2是Apache软件基金会的开源项目,它继承了Struts1的优点并改进了其不足,如更灵活的配置、更强的拦截器机制等。Struts2的核心是...

    STRUTS2站点,STRUTS2学习实例5

    这个“STRUTS2学习实例5”可能是系列教程的一部分,旨在帮助学习者深入理解和实践Struts2框架的核心特性。 在Struts2框架中,我们首先需要了解的是它的核心架构。它基于拦截器(Interceptor)模式,通过一系列预定...

    struts2实例3源码

    这个“Struts2实例3源码”压缩包很可能是为了帮助开发者理解并实践Struts2框架的用法,通过具体的代码示例来学习其核心概念和功能。 Struts2的核心特性包括: 1. **Action和Result**:在Struts2中,Action是处理...

    STRUTS2站点,STRUTS2学习实例10

    "STRUTS2站点,STRUTS2学习实例10"很可能是针对Struts2框架的一个教学资源,旨在帮助开发者深入理解Struts2的工作原理和实践应用。 在Struts2的学习实例10中,我们可能会涵盖以下几个核心知识点: 1. **Action类与...

    Struts2简单实例

    本实例将向您展示如何在MyEclipse环境中搭建并运行一个基础的Struts2项目。 首先,我们需要了解Struts2的基本架构。Struts2的核心组件包括Action类、配置文件(struts.xml)、拦截器(Interceptors)和结果类型(Results...

    struts2入门实例教程详解

    ### Struts2入门实例教程详解 #### 一、环境搭建与基本配置 在开始学习Struts2框架之前,首先需要确保开发环境的正确搭建。根据提供的文档,所使用的开发工具为MyEclipse6,Web服务器为Tomcat6,Struts版本为...

    Struts2框架 jar JAVA开发 Struts2.jar架包 Struts2开发实例

    用户自定义的配置通常在struts.xml或对应的package配置文件中进行,包括Action、Result、Interceptor等的定义。 **如何编写Action** Action是Struts2中的核心组件,它是业务逻辑的实现。Action类需要继承Struts2...

    STRUTS2站点,STRUTS2学习实例1

    这个"STRUTS2站点,STRUTS2学习实例1"可能是为了帮助初学者理解和掌握Struts2的核心概念和实际应用。下面我们将深入探讨Struts2的一些关键知识点。 首先,Struts2是基于Model-View-Controller(MVC)架构模式的,它...

    Struts2典型小实例源代码

    本实例"Struts2典型小实例源代码"旨在帮助理解Struts2的核心概念和工作流程。 首先,我们来看"Struts2ActionMethodsExample3",这很可能是展示如何在Struts2中定义和调用Action类的方法。在Struts2中,Action类是...

    struts2 实战 实例代码

    1. **基础知识**:首先,你会了解到Struts2的基础概念,如Action类、配置文件(struts.xml)、结果类型(Result)以及拦截器(Interceptor)。Action类是处理用户请求的核心,而配置文件则负责定义URL映射和Action的...

    struts2框架实例

    在Struts2框架中,核心组件包括Action类、配置文件(struts.xml)、拦截器(Interceptors)以及结果类型(Result)。Action类是业务逻辑的载体,通常继承自`org.apache.struts2.dispatcher.ng.ExecuteAction`或实现`...

Global site tag (gtag.js) - Google Analytics