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

项目:dxa-modules    文件:AudienceControllerTest.java   
@Test
public void shouldFailIfLoginFormIsNotValid() {
    //given
    RedirectAttributesModelMap map = new RedirectAttributesModelMap();
    MapBindingResult bindingResult = new MapBindingResult(new HashMap<String, Object>(), "loginForm");
    bindingResult.addError(new FieldError("test", "test", "test"));
    LoginForm loginForm = new LoginForm();
    loginForm.setLoginFormUrl("url");

    //when
    String path = controller.login(loginForm, bindingResult, map, new MockHttpServletRequest(), new MockHttpServletResponse());

    //then
    assertEquals(bindingResult.getAllErrors(), map.getFlashAttributes().get("errors"));
    assertEquals("redirect:url", path);
}
项目:dxa-modules    文件:AudienceControllerTest.java   
@Test
public void shouldFailRequestIfCannotLogin() {
    //given 
    RedirectAttributesModelMap map = new RedirectAttributesModelMap();
    MapBindingResult bindingResult = new MapBindingResult(new HashMap<String, Object>(), "loginForm");
    LoginForm loginForm = new LoginForm();
    when(securityProvider.validate(any(LoginForm.class), any(HttpServletRequest.class), any(HttpServletResponse.class))).thenReturn(false);

    //when
    controller.login(loginForm, bindingResult, map, new MockHttpServletRequest(), new MockHttpServletResponse());

    //then
    assertTrue(map.getFlashAttributes().containsKey("errors"));
    List<ObjectError> errors = (List<ObjectError>) map.getFlashAttributes().get("errors");
    assertEquals("login.failed", errors.get(0).getCode());
    assertTrue(errors.size() == 1);
}
项目:alf.io    文件:ReservationFlowIntegrationTest.java   
private String reserveTicket(String eventName) {
    ReservationForm reservationForm = new ReservationForm();
    MockHttpServletRequest request = new MockHttpServletRequest();
    request.setMethod("POST");
    ServletWebRequest servletWebRequest = new ServletWebRequest(request);
    BindingResult bindingResult = new BeanPropertyBindingResult(reservationForm, "reservation");
    Model model = new BindingAwareModelMap();
    RedirectAttributes redirectAttributes = new RedirectAttributesModelMap();
    TicketReservationModification ticketReservation = new TicketReservationModification();
    ticketReservation.setAmount(1);
    ticketReservation.setTicketCategoryId(ticketCategoryRepository.findByEventId(event.getId()).stream().findFirst().map(TicketCategory::getId).orElseThrow(IllegalStateException::new));
    reservationForm.setReservation(Collections.singletonList(ticketReservation));


    return eventController.reserveTicket(eventName, reservationForm, bindingResult, model, servletWebRequest, redirectAttributes, Locale.ENGLISH);
}
项目:spring4-understanding    文件:RedirectAttributesMethodArgumentResolver.java   
@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;
}
项目:spring4-understanding    文件:ViewNameMethodReturnValueHandlerTests.java   
@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());
}
项目:spring4-understanding    文件:ViewNameMethodReturnValueHandlerTests.java   
@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());
}
项目:spring4-understanding    文件:ViewNameMethodReturnValueHandlerTests.java   
@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());
}
项目:spring4-understanding    文件:ModelAndViewMethodReturnValueHandlerTests.java   
@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());
}
项目:spring4-understanding    文件:ModelAndViewMethodReturnValueHandlerTests.java   
@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);
}
项目:spring4-understanding    文件:ModelAndViewMethodReturnValueHandlerTests.java   
@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);
}
项目:spring4-understanding    文件:ModelAndViewMethodReturnValueHandlerTests.java   
@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);
}
项目:spring4-understanding    文件:ViewMethodReturnValueHandlerTests.java   
@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());
}
项目:dxa-modules    文件:AudienceControllerTest.java   
@Test
public void shouldLoginSuccessfullyAndRedirect() {
    //given 
    LoginForm form = new LoginForm();
    RedirectAttributesModelMap map = new RedirectAttributesModelMap();
    MapBindingResult bindingResult = new MapBindingResult(new HashMap<String, Object>(), "loginForm");
    doReturn(true).when(securityProvider).validate(eq(form), any(HttpServletRequest.class), any(HttpServletResponse.class));

    //when
    String path = controller.login(form, bindingResult, map, new MockHttpServletRequest(), new MockHttpServletResponse());

    //then
    assertEquals("redirect:path", path);
}
项目:class-guard    文件:RedirectAttributesMethodArgumentResolver.java   
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;
}
项目:class-guard    文件:ViewNameMethodReturnValueHandlerTests.java   
@Test
public void returnViewNameRedirect() throws Exception {
    ModelMap redirectModel = new RedirectAttributesModelMap();
    this.mavContainer.setRedirectModel(redirectModel);
    MethodParameter param = createReturnValueParam("viewName");
    this.handler.handleReturnValue("redirect:testView", param, this.mavContainer, this.webRequest);

    assertEquals("redirect:testView", this.mavContainer.getViewName());
    assertSame("Should have switched to the RedirectModel", redirectModel, this.mavContainer.getModel());
}
项目:class-guard    文件:ModelAndViewMethodReturnValueHandlerTests.java   
@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());
}
项目:class-guard    文件:ModelAndViewMethodReturnValueHandlerTests.java   
@Test
public void handleRedirectAttributesWithViewInstance() 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 should be used if controller redirects", redirectAttributes, model);
}
项目:class-guard    文件:ModelAndViewMethodReturnValueHandlerTests.java   
@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);
}
项目:class-guard    文件:ViewMethodReturnValueHandlerTests.java   
@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());
}
项目:glados-wiki    文件:FileController.java   
@RequiresUser
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String saveUpload(@RequestParam(value = "file", required = true) MultipartFile file,
                         @RequestParam(value = "privateFile", required = false, defaultValue = "false") final boolean privateFile,
                         @RequestParam(value = "description", required = false, defaultValue = "") final String description,
                         RedirectAttributesModelMap redirectAttributesModelMap) throws Exception {
    //
    final String creator = SecurityUtils2.getUsername();
    //
    if (file.isEmpty()) {
        throw new Exception("PLEASE SELECT A FILE.");
    } else {
        Closer closer = Closer.create();
        try {
            final String mime = file.getContentType();
            final String name = file.getOriginalFilename();
            //
            InputStream in = file.getInputStream();
            closer.register(in);
            //
            Optional<FileEntry> fe = fileStoreService.save(name, mime, creator, privateFile, description, in);
            if (fe.isPresent() == false) {
                throw new Exception("FILE SAVE FAILED?!");
            }
            // flashmap-alert.
            flashAlerts.add(redirectAttributesModelMap, new FlashAlerts.FlashAlert(BootstrapAlertTypes.INFO, "File Saved."));
            //
            return String.format("redirect:./info/%s", fe.get().getId());
        } finally {
            closer.close();
        }
    }
}
项目:glados-wiki    文件:PageController.java   
@RequiresUser
@RequestMapping(value = "/post", method = {RequestMethod.POST})
public View savePage(RedirectAttributesModelMap redirectAttributesModelMap,
                     @RequestParam(value = "title", required = true) final String title,
                     @RequestParam(value = "content", required = true) final String content,
                     @RequestParam(value = "aclForEveryone", required = false, defaultValue = "") final String aclForEveryone,
                     @RequestParam(value = "aclRUser", required = false) List<String> aclRUser,
                     @RequestParam(value = "aclWUser", required = false) List<String> aclWUser,
                     @RequestParam(value = "aclRGroup", required = false) List<String> aclRGroup,
                     @RequestParam(value = "aclWGroup", required = false) List<String> aclWGroup,
                     @RequestParam(value = "tag", required = false) List<String> tags,
                     @RequestParam(value = "origVersion", defaultValue = "", required = false) final String origVersion
)
        throws Exception {
    //
    boolean jumped = false;
    PageContent pageContentParent = null;
    Page p = null;
    if (pageService.existsByTitle(title)) {
        p = pageService.getPageByTitle(title).get();
        // check-acl
        pageAclService.checkWritable(p);
        //
        ObjectId origVersion_ = new ObjectId(origVersion);
        if (false == p.getCurrent().getId().equals(origVersion_)) {
            jumped = true;
            flashAlerts.add(redirectAttributesModelMap, new FlashAlerts.FlashAlert(BootstrapAlertTypes.WARNING, "Page Content has JUMPED! (maybe there's unmerged changes, check page versions.)"));
            Optional<PageContent> pageContentParent_ = pageContentService.load(origVersion_);
            if (pageContentParent_.isPresent()) {
                pageContentParent = pageContentParent_.get();
            } else {
                LOG.warn(String.format("MISSING PARENT!!! -- parent=[%s], SKIP.", origVersion_.toString()));
            }
        } else {
            pageContentParent = p.getCurrent();
        }
    } else {
        // check-acl
        pageAclService.checkWritable(null);
        //
        p = pageService.createByTitle(title);
    }
    //
    PageContent pageContent = new PageContent();
    pageContent.setContent(content);
    pageContent.setCtime(new Date());
    pageContent.setPage(p);
    if (pageContentParent != null) {
        pageContent.setParent(pageContentParent);
    }
    Optional<User> u = SecurityUtils2.getUser(userService);
    if (u.isPresent()) {
        pageContent.setCreator(u.get());
    }
    //
    WikiSignatureExpandFunction wikiSignatureExpandFunction = new WikiSignatureExpandFunction(timeZoneService, u);
    pageContent.setContent(wikiSignatureExpandFunction.apply(pageContent.getContent()));
    //
    pageContentService.save(pageContent);
    //
    pageService.addContent(pageContent);
    p.setCurrent(pageContent);
    //
    p.setAclForEveryone(aclForEveryone);
    p.setReadables(gatherUserAuthentications(aclRGroup, aclRUser));
    p.setWritables(gatherUserAuthentications(aclWGroup, aclWUser));
    setPageTags(p, tags);
    //
    pageService.update(p);
    //
    return redirectHelper.redirectToPageView(title);
}
项目:glados-wiki    文件:ErrorController.java   
@RequestMapping(value = "/unauthenticated")
public RedirectView unauthenticated(RedirectAttributesModelMap redirectAttributesModelMap) {
    flashAlerts.add(redirectAttributesModelMap, new FlashAlerts.FlashAlert(BootstrapAlertTypes.DANGER, "Unauthenticated!"));
    return new RedirectView(String.format("%s/a/user/loginForm", WebappPath.getWebappPath()));
}