在Struts2的Action中使用Servlet的API(紧耦版)

2 篇文章 0 订阅

由于Struts2中采用的松耦合的方式进行设计,所以在Struts2的Action类中就可以不适用Servlet的API来实现功能,但在控制层Action中想要使用Servlet的API时,应该如何操作呢?很简单,使用ServletActionContext类即可。

1.新建Web项目struts2.10

2.新建控制层代码List.java,内容如下

package controller;
import org.apache.struts2.ServletActionContext;


public class List {
	private String usernameRequest;
	private String usernameSession;
	private String usernameApplication;
	
	public String execute(){
		usernameRequest = "usernameRequest";
		usernameSession = "usernameSession";
		usernameApplication = "usernameApplication";
		
		ServletActionContext.getRequest().setAttribute(usernameRequest, usernameRequest);
		ServletActionContext.getRequest().getSession().setAttribute(usernameSession, usernameSession);
		ServletActionContext.getServletContext().setAttribute(usernameApplication, usernameApplication);
		
		return "default";
	}

	public String getUsernameRequest() {
		return usernameRequest;
	}

	public void setUsernameRequest(String usernameRequest) {
		this.usernameRequest = usernameRequest;
	}

	public String getUsernameSession() {
		return usernameSession;
	}

	public void setUsernameSession(String usernameSession) {
		this.usernameSession = usernameSession;
	}

	public String getUsernameApplication() {
		return usernameApplication;
	}

	public void setUsernameApplication(String usernameApplication) {
		this.usernameApplication = usernameApplication;
	}

}

要使用Servlet的API,必须通过ServletActionContext类

3. 新建配置文件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="struts2.10" extends="struts-default">
		<action name="list" class="controller.List">
			<result name="default">/default.jsp</result>
		</action>

	</package>

</struts>

4. 新建JSP页面default.jsp,代码如下

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%@ page isELIgnored="false"%>
<%@ taglib uri="/struts-tags" prefix="s"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<body>
		#request.usernameRequest值是:
		<s:property value="#request.usernameRequest" />
		<br />
		#session.usernameSession值是:
		<s:property value="#session.usernameSession" />
		<br />
		#application.usernameApplication值是:
		<s:property value="#application.usernameApplication" />
		<br />
	</body>
</html>

程序运行结果如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值