首页>代码>基于spring mvc+maven的demo实例>/SpringMVC/src/test/java/JUnitActionBase.java
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.junit.BeforeClass;
import org.springframework.mock.web.MockServletContext;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.XmlWebApplicationContext;
import org.springframework.web.servlet.HandlerAdapter;
import org.springframework.web.servlet.HandlerExecutionChain;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter;
import org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping;

/**
 * 说明: JUnit测试action时使用的基类
 * 
 * @author 赵磊
 * @version 创建时间:2011-2-2 下午10:27:03
 */
public class JUnitActionBase {
	private static HandlerMapping handlerMapping;
	private static HandlerAdapter handlerAdapter;

	/**
	 * 读取spring3 MVC配置文件
	 */
	@BeforeClass
	public static void setUp() {
		if (handlerMapping == null) {
			String[] configs = { "file:src/main/resources/spring-mvc/dispatcher-servlet.xml" };
			XmlWebApplicationContext context = new XmlWebApplicationContext();
			context.setConfigLocations(configs);
			MockServletContext msc = new MockServletContext();
			context.setServletContext(msc);
			context.refresh();
			msc.setAttribute(
					WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE,
					context);
			handlerMapping = (HandlerMapping) context
					.getBean(DefaultAnnotationHandlerMapping.class);
			handlerAdapter = (HandlerAdapter) context
					.getBean(context
							.getBeanNamesForType(AnnotationMethodHandlerAdapter.class)[0]);
		}
	}

	/**
	 * 执行request对象请求的action
	 * 
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	public ModelAndView excuteAction(HttpServletRequest request,
			HttpServletResponse response) throws Exception {
		HandlerExecutionChain chain = handlerMapping.getHandler(request);
		final ModelAndView model = handlerAdapter.handle(request, response,
				chain.getHandler());
		return model;
	}
}
最近下载更多
zxhjy5  LV6 8月6日
lvhongquan  LV11 2022年7月10日
a1677596408  LV23 2022年7月1日
zhijian992714  LV6 2022年2月17日
admin7777  LV14 2021年8月19日
remedy  LV1 2021年6月17日
杜老师  LV1 2021年5月12日
aaaahao  LV13 2021年3月20日
erwesdfe  LV2 2021年3月2日
wx1992926  LV2 2021年1月22日
最近浏览更多
15719908287  LV9 8月28日
dapeng0011  LV15 7月16日
lymit1024  LV4 6月24日
xzg123456  LV6 6月19日
张真狗  LV9 2023年5月22日
花落亦知秋 2023年5月22日
暂无贡献等级
2237851964  LV1 2023年2月26日
LITIANYU084414  LV11 2023年1月1日
南山难  LV4 2023年1月1日
43093307  LV4 2022年12月16日
顶部 客服 微信二维码 底部
>扫描二维码关注最代码为好友扫描二维码关注最代码为好友