一、结果(result)类型

result的type属性默认为dispatcher,其他常见的属性有redirect\chain\redirectAction

<action name="a1">
<result type="dispatcher">
/a1.jsp
</result>
</action>
<action name="a2">
<result type="redirect">
/a2.jsp
</result>
</action>
<action name="a3">
<result type="chain">
a1
</result>
</action>
<action name="a4">
<result type="chain">
<param name="actionName">a1</param>
<param name="namespace">/</param>
</result>
</action>
<action name="a5">
<result type="redirectAction">
a1
</result>
</action>

dispatcher就是forward到一个jsp页面

redirect就是跳转到一个jsp页面

chain就是forward到一个action,跳转到另外一个package用第四种方式

redirectAction就是跳转到一个action

二、全局结果集

在配置struts2.xml时有时候会遇到一个问题即多个action的result是相同的这时候就没有必要为每个action配一个result,只要配置一个global result即可:

<package name="index" namespace="/" extends="struts-default">
<global-results>
<result name="msg">/msg.jsp</result>
</global-results>
</package>
<package name="user" namespace="/user" extends="index"> </package>

这样当index包和user包下的action返回msg的时候就会forward到/msg.jsp。(extends="index"从index包继承)

三、动态结果集

在struts.xml中配置:

<action name="login" class="cn.orlion.user.UserAction" method="login">
<result>
${r}
</result>
</action>

UserAction:

package cn.orlion.user;

import com.opensymphony.xwork2.ActionSupport;

public class UserAction extends ActionSupport{

    private int type;

    private String r;

    public String login(){

        if (1 == type) r = "/a1.jsp";
else if (2 == type) r = "/a2.jsp";
return "success";
} public int getType() {
return type;
} public void setType(int type) {
this.type = type;
} public String getR() {
return r;
} public void setR(String r) {
this.r = r;
} }

这样当访问http://localhost:8080/Struts2Demo/user/login.action?type=1时就会看到a1.jsp

访问...?type=2时就会看到a2.jsp了

struts.xml中${r} 实际是从Value Stack中取出r的值

四、结果集传参数

当访问.../login.jsp?uid=test时通过< s:property value="uid" />是取不到的因为uid是个参数不会放到Value Stack中而是放到Stack Context中,可以通过<s:property value="#parameters.uid" />娶到。

当访问一个action(在这个action里赋值给了uid)时,这个action的结果:login.jsp(即forward到 /login.jsp)可以用<s:property value="uid" />取到值,这是因为forward可以从Value Stack中取到。

struts2结果(Result)的更多相关文章

  1. Struts2 配置文件result的name属性和type属性

    Struts2 配置文件result的name属性和type属性:Name属性SUCCESS:Action正确的执行完成,返回相应的视图,success是 name属性的默认值: NONE:表示Act ...

  2. Struts2 中result type属性说明

    Struts2 中result type属性说明 首先看一下在struts-default.xml中对于result-type的定义: <result-types><result-t ...

  3. Struts2之Result详解

    上一篇我们把Struts2中的Action接收参数的内容为大家介绍了,本篇我们就一起来简单学习一下Action的4种Result type类型,分为:dispatcher(服务端页面跳转):redir ...

  4. struts2 action result type类型

    struts2 action result type类型 1.chain:用来处理Action链,被跳转的action中仍能获取上个页面的值,如request信息. com.opensymphony. ...

  5. struts2的@Result annotation 如何添加params,并且在页面取值

    http://www.bubuko.com/infodetail-2492575.html .............................................. 标签:lai  ...

  6. Struts2配置Result(Struts2_result)

    一.概要 二.常用四种类型的配置 Struts.xml <?xml version="1.0" encoding="UTF-8" ?> <!D ...

  7. 【struts2】Result和ResultType

    简单的说,Result是Action执行完后返回的一个字符串,它指示了Action执行完成后,下一个页面在哪里.Result仅仅是个字符串,仅仅是用来指示下一个页面的,那么如何才能够到达下一个页面呢? ...

  8. struts2的result的type属性

    一共有两个属性name和type name这里就不介绍了 type    返回结果的类型,值可以从default-struts.properties中看到看到 常用的值:dispatcher (默认) ...

  9. Struts2中 Result类型配置详解

    一个result代表了一个可能的输出.当Action类的方法执行完成时,它返回一个字符串类型的结果码,框架根据这个结果码选择对应的result,向用户输出.在com.opensymphony.xwor ...

  10. Struts2 自定义Result

    注意:我只要是解决自定义返回Json 和异常处理问题 新建一个类 AjaxResult   继承 StrutsResultSupport 看看代码吧 public class AjaxResult e ...

随机推荐

  1. Codeforces Zip-line 650D 345Div1D(LIS)

    传送门 大意:给出一个序列,求修改一个数过后的最长上升子序列. 思路:可以用主席树在线搞,也可以用树状数组离线搞,明显后者好写得多.我们首先读取所有的询问,然后就把询问绑在给出的位置,然后我们正向做一 ...

  2. <<你最喜欢做什么--兴趣问题清单>>总结

    二.测试作业 你最喜欢做什么--兴趣问题清单 •根据迄今为止已有的经历,你真正喜欢从事的工作是什么?   目前还没有接触工作,就工作而言,凭自己所学的本领和技术去工作,我认为我会喜欢我所做的工作 •休 ...

  3. 选择排序-java

    排序-选择排序 基本思想:在待排序子表中找出最大(小)元素, 并将该元素放在子表的最前(后)面. 平均时间:O(n2) 最好情况:O(n2) 最坏情况:O(n2) 辅助空间:O(1) 稳定性:不稳定 ...

  4. mysql 条件统计

    问题描述为使讨论简单易懂,我将问题稍作简化,去掉诸多的背景. 从前有一个皇帝,他有50个妃子,这些妃子很没有天理的给他生了100,000个儿子,于是,皇帝很苦恼,海量的儿子很难管理,而且,他想知道每个 ...

  5. Vagrant 启用 rsync

    折腾了那么久,发现这些smb,nfs,virtualcfs,这些同步方案在windows下都不是最完美的.最完美的还是 rsync,我使用它同步windows上的代码,在windows浏览器中打开虚拟 ...

  6. MyEclipse使用技巧

    1.    大小写切换:  Ctrl + Shift + X   大写: Ctrl + Shift + Y   小写: 2.   自动导包: Ctrl + Shift + O 3.   运行前自动保存 ...

  7. 第十章 PageRank——Google的民主表决式网页排名技术

    搜索引擎的结果取决于两组信息:网页的质量信息,这个查询与每个网页的相关性信息.这里,我们介绍前一个. 1.PageRank算法原理 算法的原理很简单,在互联网上,如果一个网页被很多其他网页所链接,说明 ...

  8. TCPDF 6.0.036 发布,PHP 的 PDF 操作包

    TCPDF 6.0.036 包含对注册色彩的支持. TCPDF是一个用于快速生成PDF文件的PHP5函数包.TCPDF基于FPDF进行扩展和改进.支持UTF-8,Unicode,HTML和XHTML.

  9. angularjs 时间格式化

    本地化日期格式化: ({{ today | date:'medium' }})Nov 19, 2015 3:57:48 PM ({{ today | date:'short' }})11/19/15 ...

  10. 通过Measure & Arrange实现UWP瀑布流布局

    简介 在以XAML为主的控件布局体系中,有用于完成布局的核心步骤,分别是measure和arrange.继承体系中由UIElement类提供Measure和Arrange方法,并由其子类Framewo ...