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应用示例,这些示例对于初学者和进阶开发者来说都是极具价值的学习资源。 1. **Struts2 Showcase** `struts2-showcase-2.0.1.war` 是一个全面的演示应用,展示了...
在本“Struts2项目实例”中,我们将深入探讨如何使用Struts2框架来实现基本的CRUD(创建、读取、更新、删除)操作。 首先,Struts2的核心是Action类,它是业务逻辑处理的中心。在这个实例中,每个CRUD操作将对应一...
本实例将详细讲解如何使用Struts2实现一个简单的登录功能。 一、Struts2框架简介 Struts2是由Apache软件基金会开发的开源框架,它继承了Struts1的优点并解决了其存在的问题。Struts2的核心是Action类和配置文件,...
这个"STRUTS2学习实例8"显然旨在深化对Struts2的理解和应用,通过具体的实战项目来教学。让我们深入探讨一下Struts2的关键概念和技术。 首先,Struts2的核心是Model-View-Controller(MVC)设计模式。MVC模式将应用...
这个"Struts2项目实例"很可能是为了帮助开发者理解和掌握Struts2框架的实际应用。 首先,让我们深入了解一下Struts2框架的核心特性。Struts2是由Apache软件基金会维护的,它继承了Struts1的优点并解决了其不足,...
【标题】"jsp+struts2完整实例"揭示了这个项目是基于Java Web技术栈,主要使用了JSP(JavaServer Pages)和Struts2框架来实现一个完整的应用程序。Struts2是一个开源的MVC(Model-View-Controller)框架,它在Java ...
在这个“Struts2登录实例”中,我们将深入理解Struts2的核心概念、配置过程以及如何通过它实现一个基本的用户登录功能。 首先,我们需要在项目中引入Struts2的相关依赖,通常是一个JAR包或者通过Maven或Gradle等...
本实例将详细讲解如何使用Struts2实现一个简单的登录功能。 一、Struts2基础 Struts2是Apache软件基金会的开源项目,它继承了Struts1的优点并改进了其不足,如更灵活的配置、更强的拦截器机制等。Struts2的核心是...
这个“STRUTS2学习实例5”可能是系列教程的一部分,旨在帮助学习者深入理解和实践Struts2框架的核心特性。 在Struts2框架中,我们首先需要了解的是它的核心架构。它基于拦截器(Interceptor)模式,通过一系列预定...
这个“Struts2实例3源码”压缩包很可能是为了帮助开发者理解并实践Struts2框架的用法,通过具体的代码示例来学习其核心概念和功能。 Struts2的核心特性包括: 1. **Action和Result**:在Struts2中,Action是处理...
"STRUTS2站点,STRUTS2学习实例10"很可能是针对Struts2框架的一个教学资源,旨在帮助开发者深入理解Struts2的工作原理和实践应用。 在Struts2的学习实例10中,我们可能会涵盖以下几个核心知识点: 1. **Action类与...
本实例将向您展示如何在MyEclipse环境中搭建并运行一个基础的Struts2项目。 首先,我们需要了解Struts2的基本架构。Struts2的核心组件包括Action类、配置文件(struts.xml)、拦截器(Interceptors)和结果类型(Results...
### Struts2入门实例教程详解 #### 一、环境搭建与基本配置 在开始学习Struts2框架之前,首先需要确保开发环境的正确搭建。根据提供的文档,所使用的开发工具为MyEclipse6,Web服务器为Tomcat6,Struts版本为...
用户自定义的配置通常在struts.xml或对应的package配置文件中进行,包括Action、Result、Interceptor等的定义。 **如何编写Action** Action是Struts2中的核心组件,它是业务逻辑的实现。Action类需要继承Struts2...
这个"STRUTS2站点,STRUTS2学习实例1"可能是为了帮助初学者理解和掌握Struts2的核心概念和实际应用。下面我们将深入探讨Struts2的一些关键知识点。 首先,Struts2是基于Model-View-Controller(MVC)架构模式的,它...
本实例"Struts2典型小实例源代码"旨在帮助理解Struts2的核心概念和工作流程。 首先,我们来看"Struts2ActionMethodsExample3",这很可能是展示如何在Struts2中定义和调用Action类的方法。在Struts2中,Action类是...
1. **基础知识**:首先,你会了解到Struts2的基础概念,如Action类、配置文件(struts.xml)、结果类型(Result)以及拦截器(Interceptor)。Action类是处理用户请求的核心,而配置文件则负责定义URL映射和Action的...
在Struts2框架中,核心组件包括Action类、配置文件(struts.xml)、拦截器(Interceptors)以及结果类型(Result)。Action类是业务逻辑的载体,通常继承自`org.apache.struts2.dispatcher.ng.ExecuteAction`或实现`...