Example usage for org.springframework.web.servlet DispatcherServlet OUTPUT_FLASH_MAP_ATTRIBUTE

List of usage examples for org.springframework.web.servlet DispatcherServlet OUTPUT_FLASH_MAP_ATTRIBUTE

Introduction

In this page you can find the example usage for org.springframework.web.servlet DispatcherServlet OUTPUT_FLASH_MAP_ATTRIBUTE.

Prototype

String OUTPUT_FLASH_MAP_ATTRIBUTE

To view the source code for org.springframework.web.servlet DispatcherServlet OUTPUT_FLASH_MAP_ATTRIBUTE.

Click Source Link

Document

Name of request attribute that holds the "output" FlashMap with attributes to save for a subsequent request.

Usage

From source file:org.terasoluna.gfw.web.exception.SystemExceptionResolverTest.java

@Test
public void testSetExceptionCode_exception_code_is_null() {

    FlashMap flashMap = new FlashMap();
    mockRequest.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, flashMap);

    SystemException occurException = new SystemException(null, "message");

    testTarget.setExceptionCode(occurException, mockRequest, mockResponse);

    Enumeration<String> attributeNames = mockRequest.getAttributeNames();
    assertThat(attributeNames.nextElement().equals(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE), is(true));
    assertThat(attributeNames.hasMoreElements(), is(false));
    assertThat(mockResponse.getHeaderNames().isEmpty(), is(true));
    assertThat(flashMap.isEmpty(), is(true));

}

From source file:org.terasoluna.gfw.web.exception.SystemExceptionResolverTest.java

@Test
public void testSetExceptionCode_exception_code_is_notnull() {

    FlashMap flashMap = new FlashMap();
    mockRequest.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, flashMap);

    SystemException occurException = new SystemException("code001", "message");

    testTarget.setExceptionCode(occurException, mockRequest, mockResponse);

    assertThat(mockRequest.getAttribute("exceptionCode").toString(), is("code001"));
    assertThat(mockResponse.getHeader("X-Exception-Code"), is("code001"));

    assertThat((String) flashMap.get("exceptionCode"), is("code001"));

}

From source file:org.terasoluna.gfw.web.exception.SystemExceptionResolverTest.java

@Test
public void testSetResultMessages_BusinessException_flashMap_is_notnull() {

    FlashMap flashMap = new FlashMap();
    mockRequest.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, flashMap);

    ResultMessages resultMessages = ResultMessages.error().add("code01");
    BusinessException occurException = new BusinessException(resultMessages);

    testTarget.setResultMessages(occurException, mockRequest);

    assertSame(resultMessages, flashMap.get(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME));

}

From source file:org.terasoluna.gfw.web.exception.SystemExceptionResolverTest.java

@Test
public void testSetResultMessages_not_BusinessException() {

    FlashMap flashMap = new FlashMap();
    mockRequest.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, flashMap);

    SystemException occurException = new SystemException("code01", "message");

    testTarget.setResultMessages(occurException, mockRequest);

    assertThat(flashMap.isEmpty(), is(true));

}

From source file:org.terasoluna.gfw.web.exception.SystemExceptionResolverTest.java

@Test
public void testSetResultMessages_bussinessExceptionMessagesAttribute_is_null() {

    FlashMap flashMap = new FlashMap();
    mockRequest.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, flashMap);

    testTarget.setResultMessagesAttribute(null);

    ResultMessages resultMessages = ResultMessages.error().add("code01");
    BusinessException occurException = new BusinessException(resultMessages);

    testTarget.setResultMessages(occurException, mockRequest);

    assertThat(flashMap.isEmpty(), is(true));

}

From source file:org.terasoluna.gfw.web.exception.SystemExceptionResolverTest.java

@Test
public void testSetResultMessages_bussinessExceptionMessagesAttribute_is_blank() {

    FlashMap flashMap = new FlashMap();
    mockRequest.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, flashMap);

    testTarget.setResultMessagesAttribute("");

    ResultMessages resultMessages = ResultMessages.error().add("code01");
    BusinessException occurException = new BusinessException(resultMessages);

    testTarget.setResultMessages(occurException, mockRequest);

    assertThat(flashMap.isEmpty(), is(true));

}

From source file:org.terasoluna.gfw.web.exception.SystemExceptionResolverTest.java

@Test
public void testSetExceptionInfo() {

    // do setup.//w  w w  . j a va2 s  .  com
    FlashMap flashMap = new FlashMap();
    mockRequest.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, flashMap);

    SimpleMappingExceptionCodeResolver exceptionCodeResolver = new SimpleMappingExceptionCodeResolver();
    exceptionCodeResolver.setDefaultExceptionCode("defaultCode");
    testTarget.setExceptionCodeResolver(exceptionCodeResolver);

    ResultMessages resultMessages = ResultMessages.error().add("code001");
    BusinessException occurException = new BusinessException(resultMessages);

    // do test.
    testTarget.setExceptionInfo(occurException, mockRequest, mockResponse);

    // do assert.
    assertThat(mockRequest.getAttribute("exceptionCode").toString(), is("defaultCode"));
    assertThat(mockResponse.getHeader("X-Exception-Code"), is("defaultCode"));
    assertSame(resultMessages, flashMap.get(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME));

}

From source file:org.terasoluna.gfw.web.exception.SystemExceptionResolverTest.java

@Test
public void testDoResolveException_super_return_notnull() throws Exception {

    // do setup./*from  w w w .  j ava  2  s.  c  om*/
    ResultMessages resultMessages = ResultMessages.error().add("code001");
    BusinessException occurException = new BusinessException(resultMessages);

    // setup locale.
    Locale locale = Locale.ITALIAN;
    mockRequest.addPreferredLocale(locale);

    // setup FlashMap.
    FlashMap flashMap = new FlashMap();
    mockRequest.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, flashMap);

    // setup exception resolver.
    // setup default.
    testTarget.setDefaultErrorView("defaultErrorView");
    testTarget.setDefaultStatusCode(444);

    // setup exception code resolver.
    SimpleMappingExceptionCodeResolver exceptionCodeResolver = new SimpleMappingExceptionCodeResolver();
    exceptionCodeResolver.setDefaultExceptionCode("defaultExceptionCode");
    testTarget.setExceptionCodeResolver(exceptionCodeResolver);

    // do test.
    ModelAndView actualModleAndView = testTarget.doResolveException(mockRequest, mockResponse, null,
            occurException);

    // do assert.
    assertThat(mockResponse.getStatus(), is(444));
    assertThat((Integer) mockRequest.getAttribute(WebUtils.ERROR_STATUS_CODE_ATTRIBUTE), is(444));

    assertSame(occurException,
            actualModleAndView.getModel().get(SimpleMappingExceptionResolver.DEFAULT_EXCEPTION_ATTRIBUTE));

    assertThat(mockRequest.getAttribute("exceptionCode").toString(), is("defaultExceptionCode"));
    assertThat(mockResponse.getHeader("X-Exception-Code"), is("defaultExceptionCode"));

    assertSame(resultMessages, flashMap.get(ResultMessages.DEFAULT_MESSAGES_ATTRIBUTE_NAME));

}

From source file:org.broadleafcommerce.openadmin.web.controller.entity.AdminBasicEntityController.java

/**
 * Attempts to remove the given entity.//w w w.ja va 2 s .  co  m
 * 
 * @param request
 * @param response
 * @param model
 * @param pathVars
 * @param id
 * @return the return view path
 * @throws Exception
 */
@RequestMapping(value = "/{id}/delete", method = RequestMethod.POST)
public String removeEntity(HttpServletRequest request, HttpServletResponse response, Model model,
        @PathVariable Map<String, String> pathVars, @PathVariable(value = "id") String id,
        @ModelAttribute(value = "entityForm") EntityForm entityForm, BindingResult result,
        RedirectAttributes ra) throws Exception {
    String sectionKey = getSectionKey(pathVars);
    List<SectionCrumb> sectionCrumbs = getSectionCrumbs(request, sectionKey, id);

    Entity entity = service.removeEntity(entityForm, getSectionCustomCriteria(), sectionCrumbs).getEntity();
    // Removal does not normally return an Entity unless there is some validation error
    if (entity != null) {
        entityFormValidator.validate(entityForm, entity, result);
        if (result.hasErrors()) {
            // Create a flash attribute for the unsuccessful delete
            FlashMap fm = new FlashMap();
            fm.put("headerFlash", "delete.unsuccessful");
            fm.put("headerFlashAlert", true);
            request.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, fm);

            // Re-look back up the entity so that we can return something populated
            String sectionClassName = getClassNameForSection(sectionKey);
            PersistencePackageRequest ppr = getSectionPersistencePackageRequest(sectionClassName, sectionCrumbs,
                    pathVars);
            ClassMetadata cmd = service.getClassMetadata(ppr).getDynamicResultSet().getClassMetaData();
            entity = service.getRecord(ppr, id, cmd, false).getDynamicResultSet().getRecords()[0];
            Map<String, DynamicResultSet> subRecordsMap = service.getRecordsForAllSubCollections(ppr, entity,
                    sectionCrumbs);
            entityForm.clearFieldsMap();
            formService.populateEntityForm(cmd, entity, subRecordsMap, entityForm, sectionCrumbs);
            modifyEntityForm(entityForm, pathVars);

            return populateJsonValidationErrors(entityForm, result, new JsonResponse(response)).done();
        }
    }

    ra.addFlashAttribute("headerFlash", "delete.successful");
    ra.addFlashAttribute("headerFlashAlert", true);

    if (isAjaxRequest(request)) {
        // redirect attributes won't work here since ajaxredirect actually makes a new request
        return "ajaxredirect:" + getContextPath(request) + sectionKey + "?headerFlash=delete.successful";
    } else {
        return "redirect:/" + sectionKey;
    }
}

From source file:org.sparkcommerce.openadmin.web.controller.entity.AdminBasicEntityController.java

/**
 * Attempts to remove the given entity./*from  w ww .j  av a 2s  .  c om*/
 * 
 * @param request
 * @param response
 * @param model
 * @param pathVars
 * @param id
 * @return the return view path
 * @throws Exception
 */
@RequestMapping(value = "/{id}/delete", method = RequestMethod.POST)
public String removeEntity(HttpServletRequest request, HttpServletResponse response, Model model,
        @PathVariable Map<String, String> pathVars, @PathVariable(value = "id") String id,
        @ModelAttribute(value = "entityForm") EntityForm entityForm, BindingResult result) throws Exception {
    String sectionKey = getSectionKey(pathVars);
    List<SectionCrumb> sectionCrumbs = getSectionCrumbs(request, sectionKey, id);

    try {
        service.removeEntity(entityForm, getSectionCustomCriteria(), sectionCrumbs);
    } catch (ServiceException e) {
        if (e instanceof ValidationException) {
            // Create a flash attribute for the unsuccessful delete
            FlashMap fm = new FlashMap();
            fm.put("headerFlash", e.getMessage());
            fm.put("headerFlashAlert", true);
            request.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, fm);

            // Make sure we have this error show up in our logs
            LOG.error("Could not delete record", e);

            // Refresh the page
            return "redirect:/" + sectionKey + "/" + id;
        }
        if (e.containsCause(ConstraintViolationException.class)) {
            // Create a flash attribute for the unsuccessful delete
            FlashMap fm = new FlashMap();
            fm.put("headerFlash", "delete.unsuccessful");
            fm.put("headerFlashAlert", true);
            request.setAttribute(DispatcherServlet.OUTPUT_FLASH_MAP_ATTRIBUTE, fm);

            // Make sure we have this error show up in our logs
            LOG.error("Could not delete record", e);

            // Refresh the page
            return "redirect:/" + sectionKey + "/" + id;
        }
        throw e;
    }

    return "redirect:/" + sectionKey;
}