(06)Structs初学笔记——result_type
2017-11-07 10:42
267 查看
先写两个概念:
forward(转发):
1、forward是服务器跳转,浏览器不知道它所请求的具体资源来源,浏览器的地址栏不会变;
2、request.getRequestDispatcher("test.jsp").forward(request, response);//转发到test.jsp
3、以前的request中存放的变量不会失效,就像把两个页面拼到了一起;
4、转发页面和转发到的页面可以共享request里面的数据。
redirect(重定向):
1、 redirect,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL;
2、response.sendRedirect("test.jsp");//重定向到test.jsp
3、以前的request中存放的变量全部失效,并进入一个新的request作用域;
4、redirect,不能共享数据。
structs.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.devMode" value="true" />
<package name="resultTypes" namespace="/r" extends="struts-default">
<!-- result如果不指定type,默认是dispatcher,也就是forward(跳转)到一个文件去 -->
<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>
index.jsp:
<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<% String context = request.getContextPath(); %>
<!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>Insert title here</title>
</head>
<body>
Result类型
<ol>
<li><a href="r/r1">dispatcher</a>:服务器跳转,只能跳转到页面,html,jsp,freemarker等</li>
<li><a href="r/r2">redirect</a>:客户端跳转视图</li>
<li><a href="r/r3">chain</a>:forward到另一个action</li>
<li><a href="r/r4">redirectAction</a>:客户端跳转</li>
<li>freemarker</li>
<li>httpheader</li>
<li>stream</li>
<li>velocity</li>
<li>xslt</li>
<li>plaintext</li>
<li>tiles</li>
</ol>
</body>
</html>
页面如图所示:
项目结构如图:
forward(转发):
1、forward是服务器跳转,浏览器不知道它所请求的具体资源来源,浏览器的地址栏不会变;
2、request.getRequestDispatcher("test.jsp").forward(request, response);//转发到test.jsp
3、以前的request中存放的变量不会失效,就像把两个页面拼到了一起;
4、转发页面和转发到的页面可以共享request里面的数据。
redirect(重定向):
1、 redirect,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL;
2、response.sendRedirect("test.jsp");//重定向到test.jsp
3、以前的request中存放的变量全部失效,并进入一个新的request作用域;
4、redirect,不能共享数据。
structs.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.devMode" value="true" />
<package name="resultTypes" namespace="/r" extends="struts-default">
<!-- result如果不指定type,默认是dispatcher,也就是forward(跳转)到一个文件去 -->
<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>
index.jsp:
<?xml version="1.0" encoding="GB18030" ?>
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<% String context = request.getContextPath(); %>
<!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>Insert title here</title>
</head>
<body>
Result类型
<ol>
<li><a href="r/r1">dispatcher</a>:服务器跳转,只能跳转到页面,html,jsp,freemarker等</li>
<li><a href="r/r2">redirect</a>:客户端跳转视图</li>
<li><a href="r/r3">chain</a>:forward到另一个action</li>
<li><a href="r/r4">redirectAction</a>:客户端跳转</li>
<li>freemarker</li>
<li>httpheader</li>
<li>stream</li>
<li>velocity</li>
<li>xslt</li>
<li>plaintext</li>
<li>tiles</li>
</ol>
</body>
</html>
页面如图所示:
项目结构如图:
相关文章推荐
- (03)Structs初学笔记——简单数据验证
- [知了堂学习笔记]_ResultMap和ResultType的差别、ParameterMap和parameterType的差别
- Mybatis学习笔记(6)--一对一的关联使用resultType输出类型
- struts2学习笔记----resultType
- cocos2d-x初学笔记06:触屏事件TouchEvent
- FreeMarker系列学习笔记(3)——sturts2 result type为 freemarker
- Structs2 result的name属性和type属性
- struts2学习笔记-2----result的type几个类型
- 【web开发学习笔记】Structs2 Result学习笔记(一)简单介绍
- F#初学笔记06
- 【web开发学习笔记】Structs2 Result学习笔记(二)动态结果集
- Mybatis笔记四:Mybatis中的resultType和resultMap查询操作实例详解
- java笔记——初学面向对象06
- 【web开发学习笔记】Structs2 Result学习笔记(三)带参数的结果集
- 【web开发学习笔记】Structs2 Result学习笔记(三)带參数的结果集
- (07)Structs初学笔记——global_results
- [原创]java WEB学习笔记58:Struts2学习之路---Result 详解 type属性,通配符映射
- (04)Structs初学笔记——后台往前台传值
- 【mybatis笔记】 resultType与resultMap的区别
- (01)Structs初学笔记——开篇