1.常用四种类型:

a)          dispatcher(默认)

服务器跳转(普通转发),就是forward到一个JSP或者HTML或者其他结果页面,不能是Action

视图请求地址是             http://localhost:8080/myweb/r1/r1.jsp

浏览器最后显示的地址是  http://localhost:8080/myweb/r1/r1.jsp

b)         redirect

重定向到结果视图

视图请求地址是             http://localhost:8080/myweb/r2/r2.jsp

浏览器最后显示的地址是  http://localhost:8080/myweb/r2.jsp

c)         chain

服务器forward(转发)到一个另一个Action

视图请求地址是             http://localhost:8080/myweb/r3/r1.jsp

浏览器最后显示的地址是  http://localhost:8080/myweb/r1/r1.jsp

d)         redirectAction

重定向到另外一个Action

视图请求地址是             http://localhost:8080/myweb/r4/r2.jsp

浏览器最后显示的地址是  http://localhost:8080/myweb/r2.jsp

   重点是上面两种

<struts>
<constant name="struts.devMode" value="true" />
<package name="resultTypes" namespace="/r" extends="struts-default">
<action name="r1">
<result type="dispatcher">/r1.jsp</result>
</action> <action name="r2">
<result type="redirect">/r2.jsp</result>
</action> <action name="r3">
<result type="chain">r1</result>
</action> <action name="r4">
<result type="redirectAction">r2</result>
</action> </package>

如果chain是不同的命名空间:

<result type="chain">
<param name="actionName">dashboard</param>
<param name="namespace">/secure</param>
</result>

2.全局结果集

Global_Results

<struts>
<constant name="struts.devMode" value="true" />
<package name="user" namespace="/user" extends="struts-default"> <global-results>
<result name="mainpage">/main.jsp</result>
</global-results> <action name="index">
<result>/index.jsp</result>
</action> <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<result>/user_success.jsp</result>
<result name="error">/user_error.jsp</result>
</action>
</package> <package name="admin" namespace="/admin" extends="user">
<action name="admin" class="com.bjsxt.struts2.user.action.AdminAction">
<result>/admin.jsp</result>
</action>
</package>
</struts>

Global_Results是在package标签下。

意思就是说这个namespace下所有的action共享,当某一个action找不到对应的result时,就找到了它。

extends

同时这个extends 是表示namespace继承的意思,可以得到它继承namespace的所有配置

默认的都是继承于

 extends="struts-default"

它的源码在struts-core-2.1.6.jar包里面

里面配置了很多的拦截器等。

但是在实际开发中,这种继承关系如果多了就会很复杂

所以实际上一般用在

比如说有好几个模块,用户管理,学生管理,老师管理,权限管理等

它们有公用页面

比如返回首页,错误信息返回等,

可以使用到继承

$这种写法

用在可以在配置文件里往值栈里面取值

一个UserAction.java里面的内容都会存放在值栈里面

可以去读value Stack 里的内容

可以在类中用一个属性用来保存一个结果

这个属性的值可以动态确定

在struct里面可以用$符号把结果取出来

3.动态结果

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

index.jsp:

<body>
动态结果
一定不要忘了为动态结果的保存值设置set get方法
<ol>
<li><a href="user/user?type=1">返回success</a></li>
<li><a href="user/user?type=2">返回error</a></li>
</ol> </body>

struct.xml :

通过$符号取出值栈里面的内容

<struts>
<constant name="struts.devMode" value="true" />
<package name="user" namespace="/user" extends="struts-default"> <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<result>${r}</result>
</action>
</package> </struts>

UserAction.java

为这个属性动态指定location

@Override
public String execute() throws Exception {
if(type == 1) r="/user_success.jsp";
else if (type == 2) r="/user_error.jsp";
return "success";
}

/user_success.jsp
<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030" />
<title>UserSuccess</title>
</head>
<body>
User Success!
<s:property value="r"/>
<s:debug></s:debug>
</body>
</html>

4.传递参数

struct中间带参数

重定向才需要传递

使用${}

 <package name="user" namespace="/user" extends="struts-default">

        <action name="user" class="com.bjsxt.struts2.user.action.UserAction">
<result type="redirect">/user_success.jsp?t=${type}</result>
</action>
</package>
redirect如何能把数据从一个视图传递到另一个视图?  
链接 用action向其他视图传递参数(redirect才需要传递)

Result的更多相关文章

  1. spark源码分析以及优化

    第一章.spark源码分析之RDD四种依赖关系 一.RDD四种依赖关系 RDD四种依赖关系,分别是 ShuffleDependency.PrunDependency.RangeDependency和O ...

  2. No result defined for action com.lk.IndexAction and result success

    意图访问一个 /es/index.action 竟然出现: [SAE ] ERROR [05-11 13:54:32] [http-80-5] com.opensymphony.xwork2.util ...

  3. FunDA(1)- Query Result Row:强类型Query结果行

    FunDA的特点之一是以数据流方式提供逐行数据操作支持.这项功能解决了FRM如Slick数据操作以SQL批次模式为主所产生的问题.为了实现安全高效的数据行操作,我们必须把FRM产生的Query结果集转 ...

  4. PHP CI框架 result()详解

    该方法执行成功返回一个对象数组,失败则返回一个空数组. 一般情况下,我们使用下面的方法遍历结果,代码就像这样: $query = $this->db->query("要执行的 S ...

  5. CI生成查询记录集result(),row(),row_array().....

    result() 该方法执行成功返回一个对象数组,失败则返回一个空数组. 一般情况下,我们使用下面的方法遍历结果,代码就像这样: $query = $this->db->query(&qu ...

  6. Execute Sql Task 的Result DataSet如何返回

    Execute Sql Task的Result DataSet 主要有以下四种,当Execute Sql Task返回结果之后,需要使用SSIS Variable 来接收数据. 例子中使用的数据表代码 ...

  7. Struts2 源码分析——Result类实例

    本章简言 上一章笔者讲到关于DefaultActionInvocation类执行action的相关知识.我们清楚的知道在执行action类实例之后会相关处理返回的结果.而这章笔者将对处理结果相关的内容 ...

  8. Cats(4)- 叠加Free程序运算结果,Stacking monadic result types

    在前面的几篇关于Free编程的讨论示范中我们均使用了基础类型的运算结果.但在实际应用中因为需要考虑运算中出现异常的情况,常常会需要到更高阶复杂的运算结果类型如Option.Xor等.因为Monad无法 ...

  9. 使用git error: RPC failed; result=22, HTTP code = 411

    使用git提交比较大的文件的时候可能会出现这个错误 error: RPC failed; result=22, HTTP code = 411 fatal: The remote end hung u ...

  10. no result defined for action

    1.no result defined for action .......and result input    或者 no result defined for action .......and ...

随机推荐

  1. 网站开发常用jQuery插件总结(七)背景插件backstretch

    一.backstretch插件功能 优化网站外观.主要用于设置页面背景图片,也可以设置html元素的背景图片.背景图片可以设置多张,在间隔时间内循环显示. 注 但是在设置背景图片时,如果图片过大,网站 ...

  2. Nigix快速上手注意事项

    linux下,主要关于配置,包括主从,待续......

  3. XML2_XML的节点和元素

    在JAVA语言中使用JAXP操作XML文件的时候,有两个接口,一个是Node,一个是Element,Element接口继承自Node接口. 在这一层次我们进一步理解XML中更具体的分类: 元素,属性, ...

  4. POJ 2002 Squares 哈希

    题目链接: http://poj.org/problem?id=2002 #include <stdio.h> #include <string.h> ; struct Has ...

  5. Effective Java之并发

    并发本身有两个概念:1.互斥性:2.可见性: 先来说一下可见性,就是让共享的变量在进程间可以及时获得最新版本的数据:这里比较简单的方式是为可能被并发修改的全局变量添加上volatile关键字:vola ...

  6. iOS -一些常用的方法

    1.获取本地的语言 + (NSString *)getLocalLanguage { NSString *language = [[[NSUserDefaults standardUserDefaul ...

  7. DHTMLX 前端框架 建立你的一个应用程序教程(二)--设置布局

    Layout控件的演示 Dhtmlx有很多的组建来组织网页的建设, 这篇主要介绍dhtmlxLayout . 下面图片中 布局将各个组件(1.Menu 2.Toolbar 3.Grid 4.Form ...

  8. 【HDOJ】3466 Proud Merchants

    先排序预处理,后01背包. #include <stdio.h> #include <string.h> #include <stdlib.h> #define M ...

  9. 查看本机上的端口使用情况netstat -an

    1.查找本机上的端口使用情况 netstat -an 2.查找指定端口的使用情况 C:\Windows\System32>netstat -ano | find "8002" ...

  10. 在windows下解压缩Linux内核源代码出现重复文件原因

    在windows下解压缩Linux内核源代码出现重复文件原因 2009年06月30日 13:35 来源:ChinaUnix博客 作者:embededgood 编辑:周荣茂     原因一.因为在Lin ...