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

一、结果跳转方式

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

ServletDispatcherResult类

例:

ActionDemo1.java

复制代码
1
2
3
4
5
6
7
8
9
10
11
package com.zl.action; import com.opensymphony.xwork2.ActionSupport; public class ActionDemo1 extends ActionSupport{ @Override public String execute() throws Exception { return SUCCESS; } }

struts.xml

复制代码
1
2
3
4
5
6
7
8
9
10
11
<?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(地址栏不会变)

复制代码
1
2
3
4
5
6
<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(地址栏会发生变化)(常用)

复制代码
1
2
3
4
5
6
<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(重点)

复制代码
1
2
3
4
5
6
7
8
9
10
11
//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

复制代码
1
2
3
4
5
6
7
8
9
10
11
//原生的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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部