Struts2(18):Struts2深入探索续2

Struts2与Servlet是低耦合的,这可使项目不依赖于具体的容器。如可方便做单元测试。

1,如需在struts2中使用servlet,可通过com.opensymphony.xwork2.ActionContext类来调用。

此类中有很多方法,可以取得session,application等参数。

2,也可以通过实现ServletRequestAware接口来实现:

首先定义一个变量request,在实现接口的setServletRequest方法中,为此变量赋值(由框架实现),这样就可以在此类中使用request了。

package com.test.action;

import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.interceptor.ServletRequestAware;

public class RegisterAction3 implements ServletRequestAware {
	private HttpServletRequest request;

	public void setServletRequest(HttpServletRequest request) {
		this.request = request;
	}
}

 struts2相应的还提供了ServletResponseAware,ServletContextAware。

3,还可以使用org.apache.struts2.ServletActionContext类

这个类中提供了很多静态方法,可以取得request,response等。

推荐使用第一种方法,耦合度最底,最不推荐第二种方法,繁琐。

 

 

4,通过JSP页面调用指定action中的方法,除了前面章节介绍的在struts.xml文件中配置外,还可以在form中配置指定,如:

<s:form action ="register2!someMethod.action">

 someMethod即对应的是register2这个action中的方法。

 

你可能感兴趣的:(apache,jsp,struts,servlet,单元测试)