我是靠谱客的博主 陶醉口红,最近开发中收集的这篇文章主要介绍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方式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复