Struts2 学习笔记 10 Result部分 part1
1.关于Result我们首先来学习一下结果类型 result type。
先来看struts.xml.
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<constant name="struts.devMode" value="true" />
<package name="default" namespace="/" 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> </struts>
result的默认类型是dispatch,用于跳转到一个视图。
redirect可以进行跳转到一个新的页面。
这两者的区别可以这么解释一般注册的页面比如说提交到register.action注册完信息以后如果不跳转 用户可能会一直刷新这个页面 如果设计不好的程序 就会一直重复注册,注册完redirect出去 转到别的没有业务处理的页面只给提示一下注册成功。
<result type="chain">用于跳转到其他的action。若要访问其他包的action,可以用如下写法
<result name="r3" type="chain"> 
     <param name="actionName">重定向的Action名</param> 
      <param name="namespace">重定向Action所在的名字空间</param> 
 </result>
<result type="redirectAction">用于直接跳转到其他action。
2.接下来通过一个小项目讲义下Global Result 全局结果集。
下图是主页
有四个链接,内容是
传递一个参数type 分别是 1 2 3.在UserAction.java里定义了一个type变量。当type为1返回“success”,为2返回“error”,为其他情况返回“mainpage”。
UserAction.java
package com.tfj.struts2.action;
import com.opensymphony.xwork2.ActionSupport;
public class UserAction extends ActionSupport{
	private int type;
	public int getType() {
		return type;
	}
	public void setType(int type) {
		this.type = type;
	}
	@Override
	public String execute() throws Exception {
		if(type==1) return "success";
		else if(type==2) return "error";
		else return "mainpage";
	}
}
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd"> <struts>
<constant name="struts.devMode" value="true" />
<package name="user" namespace="/user" extends="struts-default">
<global-results>
<result name="mainpage">
/mainpage.jsp
</result>
</global-results> <action name="user" class="com.tfj.struts2.action.UserAction" > <result name="success">
/success.jsp
</result>
<result name="error">
/error.jsp
</result>
</action> </package>
<package name="admin" namespace="/admin" extends="user">
<action name="admin" class="com.tfj.struts2.action.UserAction" >
<result name="success">
/admin.jsp
</result>
</action>
</package> </struts>
返回的值为success 和error的情况都很好理解,当type为3时返回mainpage,但是在对应的action里并没有一个result叫mainpage。这时候就会去访问global result 。这种方式解决了假如有很多action都要去访问同一个地方这样我们把他们写到同一个Global result 减少配置量。
再看<package name="admin" namespace="/admin" extends="user">
     <action name="admin" class="com.tfj.struts2.action.UserAction" >
     <result name="success">
 /admin.jsp
 </result>
     </action>
     </package>
这段代码访问admin/admin?type=3时,也会访问到mainpage,这是由于admin包extends user包,这样就可以访问它的global result。
项目文件 Result part1.rar
 
Struts2 学习笔记 10 Result部分 part1的更多相关文章
- struts2学习笔记之七:Result类型
		一:关于Struts2的type类型,也就是Result类型,他们都实现了共同的接口Result,都实现了execute方法 他们体现了策略模式,具体Result类型参见:struts-default ... 
- Struts2 学习笔记 11 Result part2
		之前学习了result type 和global result 我们现在来说一下 1.Dynamic Result动态结果集.先来看一下小项目的目录 首页的两个链接访问user/user?type=1 ... 
- Struts2 学习笔记15 Struts标签 part1
		来说一下Struts标签,之前我们也很多地方用到了,还是来总结一下. 首先是property标签. <li>property:<s:property value="user ... 
- Struts2学习笔记(四)——result结果类型
		当Action类的方法处理请求后,会返回一个字符串(逻辑视图名),框架根据这个结果码选择对应的result,向用户输出,所以需要在struts.xml提供<result>元素定义结果页面, ... 
- Struts2学习笔记(三):result配置的各项视图转发类型
		Struts 1: <action path="/user" type="org.sunny.user.action.UserAction" ...> ... 
- Struts2学习笔记NO.1------结合Hibernate完成查询商品类别简单案例(工具IDEA)
		Struts2学习笔记一结合Hibernate完成查询商品类别简单案例(工具IDEA) 1.jar包准备 Hibernate+Struts2 jar包 struts的jar比较多,可以从Struts官 ... 
- Struts2学习笔记⑧
		今天是Struts2学习笔记的最后一篇文章了.用什么做结尾呢,这两天其实还学了很多东西,没有记录下,今天就查漏补缺一下. 文件上传与下载.FreeMarker以及昨天没做完的例子 文件上传与下载 文件 ... 
- Struts2学习笔记①
		Struts2 学习笔记① 所有的程序学习都从Hello World开始,今天先跟着书做一个HW的示例. Struts2是一套MVC框架,使用起来非常方便,接触到现在觉得最麻烦的地方是配置文件.我的一 ... 
- SQL反模式学习笔记10  取整错误
		目标:使用小数取代整数 反模式:使用Float类型 根据IEEE754标识,float类型使用二进制格式编码实数数据. 缺点:(1)舍入的必要性: 并不是所有的十进制中描述的信息都能使用二进制存储,处 ... 
随机推荐
- web应用的发布
			将web应用打包成.war类型的...因为将其发布到服务器时,其自动解压...非常方便 
- hdu 5245 Joyful(期望的计算,好题)
			Problem Description Sakura has a very magical tool to paint walls. One day, kAc asked Sakura to pain ... 
- C#模拟网站用户登录
			我们在写灌水机器人.抓资源机器人和Web网游辅助工具的时候第一步要实现的就是用户登录.那么怎么用C#来模拟一个用户的登录拉?要实现用户的登录,那么首先就必须要了解一般网站中是怎么判断用户是否登录的. ... 
- POJ 3694 LCA
			题意:有N台电脑,他们之间有M条无向边. 然后询问,每次在他们之间加一条边,剩余的桥有多少. 思路:其实这题都不需要缩点了.. 直接记录每条桥的位置,然后每次询问进行一次LCA,当询问到桥时,桥数减1 ... 
- kaggle之识别谷歌街景图片中的字母
			https://github.com/lijingpeng/kaggle/tree/master/competitions/image_recognize 识别谷歌街景图片中的字母 street-vi ... 
- 大到可以小说的Y组合子(二)
			问:上一回,你在最后曾提到"抽象性不足",这话怎么说? 答:试想,如果现在需要实现一个其它的递归(比如:Fibonacci),就必须把之前的模式从头套一遍,然后通过fib_make ... 
- openssl 对称加密算法enc命令详解
			1.对称加密算法概述 openssl的加密算法库提供了丰富的对称加密算法,我们可以通过openssl提供的对称加密算法指令的方式使用,也可以通过调用openssl提供的API的方式使用. openss ... 
- WEB服务器3--IIS7.0安装和配置
			安装Web服务器(IIS) 点击开始菜单->所有程序->管理工具->服务器管理器,启动服务器管理器,界面如下: 在服务器管理器中,选择角色,你将可以看到角色总视图. 点击添加角色,会 ... 
- Sql Server中charindex、patindex的区别
			SQL代码如下: select charindex('1,','121,1,1234') select patindex('%1,%','121,1,1234') ','121,1,1234') se ... 
- js的 new image()---转
			创建一个Image对象:var a=new Image(); 定义Image对象的src: a.src=”xxx.gif”; 这样做就相当于给浏览器缓存了一张图片. 图像对象: 建立图像对象:图 ... 
