我是靠谱客的博主 陶醉口红,最近开发中收集的这篇文章主要介绍Java EE SSH框架之Struts2(3)—— 结果跳转方式和访问ServletAPI方式,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、结果跳转方式

《1》转发(地址栏不会变)

ServletDispatcherResult类

例:

ActionDemo1.java

package com.zl.action;

import com.opensymphony.xwork2.ActionSupport;

public class ActionDemo1 extends ActionSupport{

	@Override
	public String execute() throws Exception {
		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>
    <package name="result" namespace="/" extends="struts-default">
        <action name="ActionDemo1" class="com.zl.action.ActionDemo1" method="execute">
            <result name="success" type="dispatcher">/index.jsp</result>
        </action>
    </package>
</struts>

《2》重定向(地址栏会发生变化)

ServletRedirectResult类

ActionDemo2.java同ActionDemo1.java,不再重复。

struts.xml中将上述struts.xml中的result元素的type属性值改为redirect即可。


《3》转发到Action(地址栏不会变)

<action name="ActionDemo3" class="com.zl.action.ActionDemo3" method="execute">
    <result name="success" type="chain">
        <param name="actionName">ActionDemo1</param> <!--跳转到ActionDemo1-->
        <param name="namespace">/</param>
    </result>
</action>


《4》重定向到Action(地址栏会发生变化)(常用)

<action name="ActionDemo4" class="com.zl.action.ActionDemo4" method="execute">
    <result name="success" type="redirectAction">
        <param name="actionName">ActionDemo1</param> <!--跳转到ActionDemo1-->
        <param name="namespace">/</param>
    </result>
</action>


二、Struts2访问ServletAPI

原理:


有以下三种方式:

《1》通过ActionContext(重点)

//request域=>map(Struts2并不推荐使用原生request域)
Map<String,Object> requestScope = ActionContext.getContext().getRequest();
ActionContext.getContext().put("name","requestTom");//推荐

//session域=>map
Map<String,Object> sessionScope = ActionContext.getContext().getSession();
sessionScope.put("name","sessionTom");

//application域=>map
Map<String,Object> applicationScope = ActionContext.getContext().getApplication()
applicationScope.put("name","applicationTom");


《2》通过ServletActionContext(不推荐,因为Struts的理念就是要脱离Servlet

//原生的request
HttpServletRequest request = ServletActionContext.getRequest();

//原生的session
HttpSession session = request.getSession();

//原生的response
HttpServletResponse response = ServletActionContext.getResponse();

//原生的ServletContext
ServletContext servletContext = ServletActionContext.getServletContext();

《3》实现接口...Aware


最后

以上就是陶醉口红为你收集整理的Java EE SSH框架之Struts2(3)—— 结果跳转方式和访问ServletAPI方式的全部内容,希望文章能够帮你解决Java EE SSH框架之Struts2(3)—— 结果跳转方式和访问ServletAPI方式所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部