博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Struts2学习---result结果集
阅读量:5334 次
发布时间:2019-06-15

本文共 2490 字,大约阅读时间需要 8 分钟。

这一章节主要介绍如何配置结果集,分为以下几个知识点:

  • 结果集类型(result type)
  • 全局结果集(global types)
  • 动态结果集(dynamic type)
  • 带有参数的结果集(type with params)

result type:

结果集类型一共有十一种:

1.dispatcher

2.redirect
3.chain
4.redirectAction
5.freemarker
6.httpheader
7.stream
8.velocity
9.xslt
10.plaintext
11.tiles
最常用的是前两种:一个是请求转发,一个是请求重定向。
还会用到的就是freemarker(模板),和stream(用于下载)。

 

我们的配置文件默认情况下都是dispatcher,请求转发,将struts得到的请求通过服务器转到相应的页面。 

这里的requet是一次请求,二redirect是两次请求。(这个和javaweb里面的dispatcher和redirect相同这里就不做太多解释)。

chain是转向一个action,也就是将请求转到同一个包下的action(转到不同包下的action后面介绍)。

redirectAction是重定向到另一个Action,状态和redirect相同,作用和chain相同。

本文只介绍以上类型。接下来我们来看看具体是怎么配置的(dispatcher和redirect省略)。

 

/xxx.jsp
/xxx.jsp
page1
page1

配置很简单,接下来我们来看看不同包下chain和redirectAction怎么配置:

action1
/secure
xx.jsp

只要在result里面定义想要调用的namespace和actionName参数,struts就会根据你的指定调用对应的action,上面的是chain的演示配置,redirectAction和它配置相同只要将type改为redirectAction就可以了。

全局结果集:

全局结果集,顾名思义就是全局的,就像java代码里面的全局变量一样,可以在整个程序里面被调用。 

当我们在一个程序里面想返回一个错误页面的时候,总不能每个action里面都定义一个result,然后反悔error.jsp吧。 

所以这个时候我们就可以用到全局结果集了(全局结果集在一个包里面“全局”)。 

具体这样定义:

/error.jsp

这样配置过后,当前包的action里就可以返回errorpage达到返回错误页面的目的,省去了我们多次配置。

当其他包的action也想要获得这个全局结果集的时候只需要在它package extends属性里面继承含有全局属性的包就行了。

动态结果集:

struts.xml:

${r}
public class UserAction extends ActionSupport {    private int type;    private String r;    public String getR() {        return r;    }    public void setR(String r) {        this.r = r;    }    public int getType() {        return type;    }    public void setType(int type) {        this.type = type;    }    @Override    public String execute() throws Exception {        if(type == 1) r="/user_success.jsp";        else if (type == 2) r="/user_error.jsp";        return "success";    }}

动态结果集的原理:当我们发送请求的时候,里面包含一个请求参数,我们在execute中根据参数将type我们将r赋予不同的值(页面字符串),并放入值栈中保存。 

result里面包含一个ognl表达式,用来取得值栈里面r的数据。 
这样就完成了动态的结果集。

带有参数的结果集:

当客户端发送了一个请求,这个请求含有参数,我们将这个请求重定向到其他页面,那么我们怎么将这个参数继续带到其他页面呢? 

请求带了一个名为type的参数

/user_success.jsp?t=${type}

在jsp我们可以这样取值:

这个语句等价于:

到这里我们的结果集就讲完了。

 

 

版权声明:本文为博主原创文章,如需转载请表明出处。 https://blog.csdn.net/qq_39266910/article/details/78510751

 

转载于:https://www.cnblogs.com/chengshun/p/9775191.html

你可能感兴趣的文章
MSChart的研究
查看>>
C# 索引器
查看>>
MySQLdb & pymsql
查看>>
zju 2744 回文字符 hdu 1544
查看>>
delphi 内嵌汇编例子
查看>>
【luogu P2298 Mzc和男家丁的游戏】 题解
查看>>
前端笔记-bom
查看>>
MATLAB作图方法与技巧(一)
查看>>
上海淮海中路上苹果旗舰店门口欲砸一台IMAC电脑维权
查看>>
Google透露Android Market恶意程序扫描服务
查看>>
给mysql数据库字段值拼接前缀或后缀。 concat()函数
查看>>
迷宫问题
查看>>
【FZSZ2017暑假提高组Day9】猜数游戏(number)
查看>>
泛型子类_属性类型_重写方法类型
查看>>
eclipse-将同一个文件分屏显示
查看>>
对闭包的理解
查看>>
练习10-1 使用递归函数计算1到n之和(10 分
查看>>
Oracle MySQL yaSSL 不明细节缓冲区溢出漏洞2
查看>>
windows编程ASCII问题
查看>>
.net webService代理类
查看>>