-------------------siwuxie095
(一)全局结果页面
1、result 标签是根据 Action 方法的返回值,配置到不同的路径中
2、全局结果页面是指在同一个 package 标签下配置的 Action 中
返回相同的字符串的值,且都跳转到该页面
「返回值相同,结果页面相同」
3、在 package 标签下使用 global-results 标签进行配置,如下
(1)编写页面
hello.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Hello</title> </head> <body> <h1>Hello Struts2 ...</h1> </body> </html> |
(2)编写 Action
BookAction.java:
package com.siwuxie095.action;
import com.opensymphony.xwork2.ActionSupport;
public class BookAction extends ActionSupport { @Override public String execute() throws Exception { System.out.println("--- book ---"); return "success"; } } |
OrderAction.java:
package com.siwuxie095.action;
import com.opensymphony.xwork2.ActionSupport;
public class OrderAction extends ActionSupport { @Override public String execute() throws Exception { System.out.println("--- order ---"); return "success"; } } |
(3)配置 Action
1)普通结果页面配置
<package name="demo" extends="struts-default" namespace="/"> <action name="book" class="com.siwuxie095.action.BookAction"> <result name="success">/hello.jsp</result> </action> <action name="order" class="com.siwuxie095.action.OrderAction"> <result name="success">/hello.jsp</result> </action> </package> |
2)全局结果页面配置
<package name="demo" extends="struts-default" namespace="/"> <global-results> <result name="success">/hello.jsp</result> </global-results> <action name="book" class="com.siwuxie095.action.BookAction"></action> <action name="order" class="com.siwuxie095.action.OrderAction"></action> </package> |
(4)访问路径
1)http://localhost:8080/工程名/book
2)http://localhost:8080/工程名/order
「最好加上 .action 后缀,以防某些浏览器无法访问」
(二)局部结果页面
1、局部结果页面是指在某个 Action 中根据该字符串的值
进行页面的跳转,只对该 Action 有效
「相对 全局结果页面 而言」
2、既配置了全局结果页面,又配置了局部结果页面,最终
以局部结果页面为准,如下
(1)编写页面
word.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>World</title> </head> <body> <h1>World Struts2 ...</h1> </body> </html> |
(2)局部结果页面配置
<package name="demo" extends="struts-default" namespace="/"> <!-- 全局结果页面配置 --> <global-results> <result name="success">/hello.jsp</result> </global-results> <action name="book" class="com.siwuxie095.action.BookAction"></action> <action name="order" class="com.siwuxie095.action.OrderAction"> <!-- 局部结果页面配置 --> <result name="success">/world.jsp</result> </action> </package> |
(三)result 标签的 type 属性
1、type 属性:如何到路径中(转发 或 重定向)
(1)转发是一次请求,地址栏不变
(2)重定向是两次请求,地址栏变化
2、type 属性值
(1)dispatcher(默认值),转发到页面
(2)redirect,重定向到页面
(3)chain,转发到 Action(因缓存问题,一般不使用)
(4)redirectAction,重定向到 Action
3、总结
1)dispatcher 和 redirect 一般是配置到页面中
2)chain 和 redirectAction 一般是配置到 Action 中
【made by siwuxie095】