struts2学习(4)struts2核心知识III
一、result配置:

1.result中的type类型:
com.cy.action.HelloAction.java:
package com.cy.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String execute() throws Exception {
return SUCCESS;
}
//redirect
public String r() throws Exception {
return "r";
}
//chain
public String c() throws Exception {
return "c";
}
//redirectAction
public String ra() throws Exception {
return "ra";
}
}
com.cy.action.HelloAction2.java:
package com.cy.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction2 extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name2;
public String getName2() {
return name2;
}
public void setName2(String name2) {
this.name2 = name2;
}
@Override
public String execute() throws Exception {
this.name2 = "你好啊";
return SUCCESS;
}
}
struts.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="manage" namespace="/" extends="struts-default">
<action name="hello" class="com.cy.action.HelloAction">
<result name="success" type="dispatcher">success.jsp</result>
<result name="r" type="redirect">success.jsp</result>
<result name="c" type="chain">hello2</result>
<result name="ra" type="redirectAction">hello2</result>
</action> <action name="hello2" class="com.cy.action.HelloAction2">
<result name="success" type="dispatcher">success.jsp</result>
</action>
</package>
</struts>
index.jsp:
<body>
<a href="hello?name=struts2" target="_blank">默认转发_dispatcher</a><br>
<a href="hello!r?name=struts2" target="_blank">重定向_redirect</a><br>
<a href="hello!c?name=struts2" target="_blank">链条_chain</a><br>
<a href="hello!ra?name=struts2" target="_blank">重定向到Action_redirectAction</a><br>
</body>
success.jsp:
<body>
name: ${name}<br>
name2:${name2 }
</body>
测试结果:

1)默认转发-dispatcher:

name的值取到了;url中地址不变;
2)重定向-redirect:

name的值取不到;不是同一个request了,所以数据没法共享;
url地址栏变了;
3)链条-chain:

name的数据能取,内部转发到了一个新的Action,这个数据可以共享;
name2的数据能取,是hello2Action自己设进去的,肯定能取;
url地址:不变;
4)重定向到action - redirectAction:

name的值取不到:从一个action中重定向到另一个action继续执行,这里面数据带不过去,不是一个request;客户端重新请求hello2.action:那么:
name2的值是hello2Action自己设进去的,肯定能取;
url:已经变成了hello2.action;说明客户端重新请求了hello2.action;
2.result全局配置:
package com.cy.action;
import com.opensymphony.xwork2.ActionSupport;
public class HelloAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private String name;
private String error;
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String execute() throws Exception {
if(name==null || name.length()==0){
error = "name是空的";
return ERROR;
}
return SUCCESS;
}
//redirect
public String r() throws Exception {
return "r";
}
//chain
public String c() throws Exception {
return "c";
}
//redirectAction
public String ra() throws Exception {
return "ra";
}
}
struts.xml配置:
<struts>
<constant name="struts.enable.DynamicMethodInvocation" value="true" /> <package name="manage" namespace="/" extends="struts-default">
<global-results>
<result name="error">error.jsp</result>
</global-results> <action name="hello" class="com.cy.action.HelloAction">
<result name="success" type="dispatcher">success.jsp</result>
<result name="r" type="redirect">success.jsp</result>
<result name="c" type="chain">hello2</result>
<result name="ra" type="redirectAction">hello2</result>
</action> <action name="hello2" class="com.cy.action.HelloAction2">
<result name="success" type="dispatcher">success.jsp</result>
</action>
</package>
</struts>
error.jsp:
<body>
错误信息:${error }
</body>
index.jsp:
<body>
<a href="hello" target="_blank">全局result配置</a><br>
</body>
测试:

-------------
struts2学习(4)struts2核心知识III的更多相关文章
- Struts2学习笔记——Struts2与Spring整合
Struts2与Spring整合后,可以使用Spring的配置文件applicationContext.xml来描述依赖关系,在Struts2的配置文件struts.xml来使用Spring创建的 ...
- Struts2学习一----------Struts2的工作原理及HelloWorld简单实现
© 版权声明:本文为博主原创文章,转载请注明出处 Struts2工作原理 一个请求在Struts2框架中的处理步骤: 1.客户端初始化一个指向Servlet容器(例如Tomcat)的请求 2.这个请求 ...
- struts2学习(2)struts2核心知识
一.Struts2 get/set 自动获取/设置数据 根据上一章.中的源码继续. HelloWorldAction.java中private String name,自动获取/设置name: pac ...
- struts2学习(3)struts2核心知识II
一.struts.xml配置: 1.分模块配置方法: 比如某个系统多个模块,我们把资产管理模块和车辆管理模块,分开,在总的struts.xml配置文件中include他们: 工程结构: struts. ...
- struts2学习(1)struts2 helloWorld
一.struts2简介: 二.helloWorld: 1)工程结构: HelloWorldAction.java: package com.cy.action; import com.opensymp ...
- Struts2学习笔记——Struts2搭建和第一个小程序
1.新建web项目 2.配置Struts2核心过滤器 (1)打开web.xml文件,做以下配置: <?xml version="1.0" encoding="UTF ...
- Struts2学习笔记--Struts2的体系结构
1. Struts2体系结构 Struts是以前端控制器框架为主体的框架,用户的请求会通过控制器选择不同的Action类来执行具体的操作,在Action类中所有的Servlet对象(request.r ...
- struts2学习(15)struts2防重复提交
一.重复提交的例子: 模拟一种情况,存在延时啊,系统比较繁忙啊啥的. 模拟延迟5s钟,用户点了一次提交,又点了一次提交,例子中模拟这种情况: 这样会造成重复提交: com.cy.action.St ...
- struts2学习(14)struts2文件上传和下载(4)多个文件上传和下载
四.多个文件上传: 五.struts2文件下载: 多个文件上传action com.cy.action.FilesUploadAction.java: package com.cy.action; i ...
随机推荐
- poj1698
题解: 网络流 然后似乎反着做块? 代码: #include<cstdio> #include<cstring> #include<algorithm> #incl ...
- bzoj1997
题解: 在圆上面的点能不能不交叉 和那一题差不多 http://www.cnblogs.com/xuanyiming/p/8110597.html 代码: #include<bits/stdc+ ...
- canvas基础学习
/** * Created by ty on 2016/7/11. * canvas 基础 */ window.onload = function() { var canvas = document. ...
- 将django的admin后台界面改为中文
很简单,直接修改settings配置文件的以下3项(django==1.9). LANGUAGE_CODE = 'zh-hans' TIME_ZONE = 'Asia/Shanghai' USE_TZ ...
- iOS笔记之常用工具
CocoaPods: 类库管理工具,使用教程见http://www.devtang.com/blog/2014/05/25/use-cocoapod-to-manage-ios-lib-depende ...
- python中pickle模块与base64模块的使用
pickle模块的使用 pickle模块是python的标准模块,提供了对于python数据的序列化操作,可以将数据转换为bytes类型,其序列化速度比json模块要高. pickle.dumps() ...
- 一张图说明HTTPS 握手过程
- 用angularjs的$http提交的数据,在php服务器端却无法通过$_REQUEST/$_POST获取到
- 服务器重装和配置:Ubuntu16.04 + Anaconda3 + GTX1080驱动 + CUDA8 + cuDNN + 常用工具安装
前一篇[基于Ubuntu16.04的GeForce GTX 1080驱动安装,遇到的问题及对应的解决方法]是在机器原有系统上安装GPU驱动,后来决定备份数据后重装系统,让服务器环境更干净清爽. 1.安 ...
- [GitHub] git push的时候报错 fatal: unable to access 'http://github.com/xxx/xxx.git/': Recv failure: Connection reset by peer
参考了两种方法: 1. 解决fatal: unable to connect to github.com问题 http://blog.csdn.net/greenqingqingws/article/ ...