类org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap源码实例Demo

下面列出了怎么用org.springframework.web.servlet.mvc.support.RedirectAttributesModelMap的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
public void returnViewNameRedirect() throws Exception {
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	this.handler.handleReturnValue("redirect:testView", this.param, this.mavContainer, this.webRequest);
	assertEquals("redirect:testView", this.mavContainer.getViewName());
	assertSame(redirectModel, this.mavContainer.getModel());
}
 
@Test
public void returnViewCustomRedirect() throws Exception {
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	this.handler.setRedirectPatterns("myRedirect:*");
	this.handler.handleReturnValue("myRedirect:testView", this.param, this.mavContainer, this.webRequest);
	assertEquals("myRedirect:testView", this.mavContainer.getViewName());
	assertSame(redirectModel, this.mavContainer.getModel());
}
 
@Test
public void returnViewRedirectWithCustomRedirectPattern() throws Exception {
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	this.handler.setRedirectPatterns("myRedirect:*");
	this.handler.handleReturnValue("redirect:testView", this.param, this.mavContainer, this.webRequest);
	assertEquals("redirect:testView", this.mavContainer.getViewName());
	assertSame(redirectModel, this.mavContainer.getModel());
}
 
@Test
public void handleRedirectAttributesWithViewReference() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView(new RedirectView(), "attrName", "attrValue");
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	assertEquals(RedirectView.class, mavContainer.getView().getClass());
	assertEquals("attrValue", mavContainer.getModel().get("attrName"));
	assertSame("RedirectAttributes should be used if controller redirects", redirectAttributes,
			mavContainer.getModel());
}
 
@Test
public void handleRedirectAttributesWithViewName() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView("redirect:viewName", "attrName", "attrValue");
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	ModelMap model = mavContainer.getModel();
	assertEquals("redirect:viewName", mavContainer.getViewName());
	assertEquals("attrValue", model.get("attrName"));
	assertSame(redirectAttributes, model);
}
 
@Test
public void handleRedirectAttributesWithCustomPrefix() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView("myRedirect:viewName", "attrName", "attrValue");
	handler.setRedirectPatterns("myRedirect:*");
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	ModelMap model = mavContainer.getModel();
	assertEquals("myRedirect:viewName", mavContainer.getViewName());
	assertEquals("attrValue", model.get("attrName"));
	assertSame(redirectAttributes, model);
}
 
@Test
public void handleRedirectAttributesWithoutRedirect() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView();
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	ModelMap model = mavContainer.getModel();
	assertEquals(null, mavContainer.getView());
	assertTrue(mavContainer.getModel().isEmpty());
	assertNotSame("RedirectAttributes should not be used if controller doesn't redirect", redirectAttributes, model);
}
 
@Test
public void returnViewRedirect() throws Exception {
	RedirectView redirectView = new RedirectView("testView");
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	MethodParameter param = createReturnValueParam("view");
	this.handler.handleReturnValue(redirectView, param, this.mavContainer, this.webRequest);

	assertSame(redirectView, this.mavContainer.getView());
	assertSame("Should have switched to the RedirectModel", redirectModel, this.mavContainer.getModel());
}
 
@Test
public void returnViewNameRedirect() throws Exception {
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	this.handler.handleReturnValue("redirect:testView", this.param, this.mavContainer, this.webRequest);
	assertEquals("redirect:testView", this.mavContainer.getViewName());
	assertSame(redirectModel, this.mavContainer.getModel());
}
 
@Test
public void returnViewCustomRedirect() throws Exception {
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	this.handler.setRedirectPatterns("myRedirect:*");
	this.handler.handleReturnValue("myRedirect:testView", this.param, this.mavContainer, this.webRequest);
	assertEquals("myRedirect:testView", this.mavContainer.getViewName());
	assertSame(redirectModel, this.mavContainer.getModel());
}
 
@Test
public void returnViewRedirectWithCustomRedirectPattern() throws Exception {
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	this.handler.setRedirectPatterns("myRedirect:*");
	this.handler.handleReturnValue("redirect:testView", this.param, this.mavContainer, this.webRequest);
	assertEquals("redirect:testView", this.mavContainer.getViewName());
	assertSame(redirectModel, this.mavContainer.getModel());
}
 
@Test
public void handleRedirectAttributesWithViewReference() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView(new RedirectView(), "attrName", "attrValue");
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	assertEquals(RedirectView.class, mavContainer.getView().getClass());
	assertEquals("attrValue", mavContainer.getModel().get("attrName"));
	assertSame("RedirectAttributes should be used if controller redirects", redirectAttributes,
			mavContainer.getModel());
}
 
@Test
public void handleRedirectAttributesWithViewName() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView("redirect:viewName", "attrName", "attrValue");
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	ModelMap model = mavContainer.getModel();
	assertEquals("redirect:viewName", mavContainer.getViewName());
	assertEquals("attrValue", model.get("attrName"));
	assertSame(redirectAttributes, model);
}
 
@Test
public void handleRedirectAttributesWithCustomPrefix() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView("myRedirect:viewName", "attrName", "attrValue");
	handler.setRedirectPatterns("myRedirect:*");
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	ModelMap model = mavContainer.getModel();
	assertEquals("myRedirect:viewName", mavContainer.getViewName());
	assertEquals("attrValue", model.get("attrName"));
	assertSame(redirectAttributes, model);
}
 
@Test
public void handleRedirectAttributesWithoutRedirect() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView();
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	ModelMap model = mavContainer.getModel();
	assertEquals(null, mavContainer.getView());
	assertTrue(mavContainer.getModel().isEmpty());
	assertNotSame("RedirectAttributes should not be used if controller doesn't redirect", redirectAttributes, model);
}
 
@Test
public void returnViewRedirect() throws Exception {
	RedirectView redirectView = new RedirectView("testView");
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	MethodParameter param = createReturnValueParam("view");
	this.handler.handleReturnValue(redirectView, param, this.mavContainer, this.webRequest);

	assertSame(redirectView, this.mavContainer.getView());
	assertSame("Should have switched to the RedirectModel", redirectModel, this.mavContainer.getModel());
}
 
@Override
public Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer,
		NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception {

	DataBinder dataBinder = binderFactory.createBinder(webRequest, null, null);
	ModelMap redirectAttributes  = new RedirectAttributesModelMap(dataBinder);
	mavContainer.setRedirectModel(redirectAttributes);
	return redirectAttributes;
}
 
@Test
public void returnViewNameRedirect() throws Exception {
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	this.handler.handleReturnValue("redirect:testView", this.param, this.mavContainer, this.webRequest);
	assertEquals("redirect:testView", this.mavContainer.getViewName());
	assertSame(redirectModel, this.mavContainer.getModel());
}
 
@Test
public void returnViewCustomRedirect() throws Exception {
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	this.handler.setRedirectPatterns("myRedirect:*");
	this.handler.handleReturnValue("myRedirect:testView", this.param, this.mavContainer, this.webRequest);
	assertEquals("myRedirect:testView", this.mavContainer.getViewName());
	assertSame(redirectModel, this.mavContainer.getModel());
}
 
@Test
public void returnViewRedirectWithCustomRedirectPattern() throws Exception {
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	this.handler.setRedirectPatterns("myRedirect:*");
	this.handler.handleReturnValue("redirect:testView", this.param, this.mavContainer, this.webRequest);
	assertEquals("redirect:testView", this.mavContainer.getViewName());
	assertSame(redirectModel, this.mavContainer.getModel());
}
 
@Test
public void handleRedirectAttributesWithViewReference() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView(new RedirectView(), "attrName", "attrValue");
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	assertEquals(RedirectView.class, mavContainer.getView().getClass());
	assertEquals("attrValue", mavContainer.getModel().get("attrName"));
	assertSame("RedirectAttributes should be used if controller redirects", redirectAttributes,
			mavContainer.getModel());
}
 
@Test
public void handleRedirectAttributesWithViewName() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView("redirect:viewName", "attrName", "attrValue");
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	ModelMap model = mavContainer.getModel();
	assertEquals("redirect:viewName", mavContainer.getViewName());
	assertEquals("attrValue", model.get("attrName"));
	assertSame(redirectAttributes, model);
}
 
@Test
public void handleRedirectAttributesWithCustomPrefix() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView("myRedirect:viewName", "attrName", "attrValue");
	handler.setRedirectPatterns("myRedirect:*");
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	ModelMap model = mavContainer.getModel();
	assertEquals("myRedirect:viewName", mavContainer.getViewName());
	assertEquals("attrValue", model.get("attrName"));
	assertSame(redirectAttributes, model);
}
 
@Test
public void handleRedirectAttributesWithoutRedirect() throws Exception {
	RedirectAttributesModelMap redirectAttributes  = new RedirectAttributesModelMap();
	mavContainer.setRedirectModel(redirectAttributes);

	ModelAndView mav = new ModelAndView();
	handler.handleReturnValue(mav, returnParamModelAndView, mavContainer, webRequest);

	ModelMap model = mavContainer.getModel();
	assertEquals(null, mavContainer.getView());
	assertTrue(mavContainer.getModel().isEmpty());
	assertNotSame("RedirectAttributes should not be used if controller doesn't redirect", redirectAttributes, model);
}
 
@Test
public void returnViewRedirect() throws Exception {
	RedirectView redirectView = new RedirectView("testView");
	ModelMap redirectModel = new RedirectAttributesModelMap();
	this.mavContainer.setRedirectModel(redirectModel);
	MethodParameter param = createReturnValueParam("view");
	this.handler.handleReturnValue(redirectView, param, this.mavContainer, this.webRequest);

	assertSame(redirectView, this.mavContainer.getView());
	assertSame("Should have switched to the RedirectModel", redirectModel, this.mavContainer.getModel());
}
 
 类方法
 同包方法