结果页面的配置

-------------------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 属性

   

   

1type 属性:如何到路径中(转发 或 重定向)

   

1转发是一次请求,地址栏不变

   

2重定向是两次请求,地址栏变化

   

   

   

2、type 属性值

   

1dispatcher(默认值),转发到页面

   

   

2redirect,重定向到页面

   

   

3chain,转发到 Action(因缓存问题,一般不使用)

   

   

4redirectAction,重定向到 Action

   

   

   

3、总结

   

1)dispatcher 和 redirect 一般是配置到页面

   

2)chain 和 redirectAction 一般是配置到 Action

   

   

   

   

   

   

   

   

   

【made by siwuxie095】

原文地址:https://www.cnblogs.com/siwuxie095/p/7327108.html