private Map<?, ?> renderView() throws Exception{ final ModelAndView modelAndView = this.getModelAndViewUponServiceValidationWithSecurePgtUrl(); final JstlView v = (JstlView) resolver.resolveViewName(modelAndView.getViewName(), Locale.getDefault()); final MockHttpServletRequest req = new MockHttpServletRequest(new MockServletContext()); v.setServletContext(req.getServletContext()); req.setAttribute(RequestContext.WEB_APPLICATION_CONTEXT_ATTRIBUTE, new GenericWebApplicationContext(req.getServletContext())); final Cas30ResponseView view = new Cas30ResponseView(v); view.setServicesManager(this.servicesManager); view.setCasAttributeEncoder(new DefaultCasAttributeEncoder(this.servicesManager)); final MockHttpServletResponse resp = new MockHttpServletResponse(); view.render(modelAndView.getModel(), req, resp); return (Map<?, ?>) req.getAttribute(CasProtocolConstants.VALIDATION_CAS_MODEL_ATTRIBUTE_NAME_ATTRIBUTES); }
@Test public void verifyView() throws Exception { final ModelAndView modelAndView = this.getModelAndViewUponServiceValidationWithSecurePgtUrl(); final JstlView v = (JstlView) resolver.resolveViewName(modelAndView.getViewName(), Locale.getDefault()); final MockHttpServletRequest req = new MockHttpServletRequest(new MockServletContext()); v.setServletContext(req.getServletContext()); req.setAttribute(RequestContext.WEB_APPLICATION_CONTEXT_ATTRIBUTE, new GenericWebApplicationContext(req.getServletContext())); final Cas20ResponseView view = new Cas20ResponseView(v); final MockHttpServletResponse resp = new MockHttpServletResponse(); view.render(modelAndView.getModel(), req, resp); assertNotNull(req.getAttribute(CasViewConstants.MODEL_ATTRIBUTE_NAME_CHAINED_AUTHENTICATIONS)); assertNotNull(req.getAttribute(CasViewConstants.MODEL_ATTRIBUTE_NAME_PRIMARY_AUTHENTICATION)); assertNotNull(req.getAttribute(CasViewConstants.MODEL_ATTRIBUTE_NAME_PRINCIPAL)); assertNotNull(req.getAttribute(CasProtocolConstants.VALIDATION_CAS_MODEL_PROXY_GRANTING_TICKET_IOU)); }
private Map<?, ?> renderView() throws Exception { final ModelAndView modelAndView = this.getModelAndViewUponServiceValidationWithSecurePgtUrl(); final MockHttpServletRequest req = new MockHttpServletRequest(new MockServletContext()); req.setAttribute(RequestContext.WEB_APPLICATION_CONTEXT_ATTRIBUTE, new GenericWebApplicationContext(req.getServletContext())); final ProtocolAttributeEncoder encoder = new DefaultCasProtocolAttributeEncoder(this.servicesManager, NoOpCipherExecutor.getInstance()); final View viewDelegated = new View() { @Override public String getContentType() { return MediaType.TEXT_HTML_VALUE; } @Override public void render(final Map<String, ?> map, final HttpServletRequest request, final HttpServletResponse response) throws Exception { map.forEach(request::setAttribute); } }; final Cas30ResponseView view = new Cas30ResponseView(true, encoder, servicesManager, "attribute", viewDelegated, true); final MockHttpServletResponse resp = new MockHttpServletResponse(); view.render(modelAndView.getModel(), req, resp); return (Map<?, ?>) req.getAttribute(CasProtocolConstants.VALIDATION_CAS_MODEL_ATTRIBUTE_NAME_ATTRIBUTES); }
/** * Expose current Spring-managed Locale and MessageSource to JasperReports i18n * ($R expressions etc). The MessageSource should only be exposed as JasperReports * resource bundle if no such bundle is defined in the report itself. * <p>The default implementation exposes the Spring RequestContext Locale and a * MessageSourceResourceBundle adapter for the Spring ApplicationContext, * analogous to the {@code JstlUtils.exposeLocalizationContext} method. * @see org.springframework.web.servlet.support.RequestContextUtils#getLocale * @see org.springframework.context.support.MessageSourceResourceBundle * @see #getApplicationContext() * @see net.sf.jasperreports.engine.JRParameter#REPORT_LOCALE * @see net.sf.jasperreports.engine.JRParameter#REPORT_RESOURCE_BUNDLE * @see org.springframework.web.servlet.support.JstlUtils#exposeLocalizationContext */ protected void exposeLocalizationContext(Map<String, Object> model, HttpServletRequest request) { RequestContext rc = new RequestContext(request, getServletContext()); Locale locale = rc.getLocale(); if (!model.containsKey(JRParameter.REPORT_LOCALE)) { model.put(JRParameter.REPORT_LOCALE, locale); } TimeZone timeZone = rc.getTimeZone(); if (timeZone != null && !model.containsKey(JRParameter.REPORT_TIME_ZONE)) { model.put(JRParameter.REPORT_TIME_ZONE, timeZone); } JasperReport report = getReport(); if ((report == null || report.getResourceBundle() == null) && !model.containsKey(JRParameter.REPORT_RESOURCE_BUNDLE)) { model.put(JRParameter.REPORT_RESOURCE_BUNDLE, new MessageSourceResourceBundle(rc.getMessageSource(), locale)); } }
@Test public void exposeSpringMacroHelpers() throws Exception { VelocityView vv = new VelocityView() { @Override protected void mergeTemplate(Template template, Context context, HttpServletResponse response) { assertTrue(context.get(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE) instanceof RequestContext); RequestContext rc = (RequestContext) context.get(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE); BindStatus status = rc.getBindStatus("tb.name"); assertEquals("name", status.getExpression()); assertEquals("juergen", status.getValue()); } }; vv.setUrl(TEMPLATE_FILE); vv.setApplicationContext(wac); vv.setExposeSpringMacroHelpers(true); Map<String, Object> model = new HashMap<String, Object>(); model.put("tb", new TestBean("juergen", 99)); vv.render(model, request, response); }
@Test @SuppressWarnings("rawtypes") public void requestContext() throws ServletException { PageContext pc = createPageContext(); RequestContext rc = new RequestContext((HttpServletRequest) pc.getRequest(), pc.getServletContext()); assertEquals("test message", rc.getMessage("test")); assertEquals("test message", rc.getMessage("test", (Object[]) null)); assertEquals("test message", rc.getMessage("test", "default")); assertEquals("test message", rc.getMessage("test", (Object[]) null, "default")); assertEquals("test arg1 message arg2", rc.getMessage("testArgs", new String[] {"arg1", "arg2"}, "default")); assertEquals("test arg1 message arg2", rc.getMessage("testArgs", Arrays.asList(new String[] {"arg1", "arg2"}), "default")); assertEquals("default", rc.getMessage("testa", "default")); assertEquals("default", rc.getMessage("testa", (List) null, "default")); MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String[] {"test"}); assertEquals("test message", rc.getMessage(resolvable)); }
@Test @SuppressWarnings("rawtypes") public void requestContext() throws ServletException { PageContext pc = createPageContext(); RequestContext rc = new RequestContext((HttpServletRequest) pc.getRequest()); assertEquals("theme test message", rc.getThemeMessage("themetest")); assertEquals("theme test message", rc.getThemeMessage("themetest", (String[]) null)); assertEquals("theme test message", rc.getThemeMessage("themetest", "default")); assertEquals("theme test message", rc.getThemeMessage("themetest", (Object[]) null, "default")); assertEquals("theme test message arg1", rc.getThemeMessage("themetestArgs", new String[] {"arg1"})); assertEquals("theme test message arg1", rc.getThemeMessage("themetestArgs", Arrays.asList(new String[] {"arg1"}))); assertEquals("default", rc.getThemeMessage("themetesta", "default")); assertEquals("default", rc.getThemeMessage("themetesta", (List) null, "default")); MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String[] {"themetest"}); assertEquals("theme test message", rc.getThemeMessage(resolvable)); }
@Override protected void renderMergedOutputModel( Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { ServletContext servletContext = getServletContext(); TilesContainer container = ServletUtil.getContainer(servletContext); if (container == null) { throw new ServletException("Tiles container is not initialized. " + "Have you added a TilesConfigurer to your web application context?"); } exposeModelAsRequestAttributes(model, request); JstlUtils.exposeLocalizationContext(new RequestContext(request, servletContext)); if (this.alwaysInclude) { ServletUtil.setForceInclude(request, true); } container.render(getUrl(), request, response); }
@Test public void createLayoutFromConfigClass() throws Exception { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.register(ThymeleafAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class); MockServletContext servletContext = new MockServletContext(); context.setServletContext(servletContext); context.refresh(); ThymeleafView view = (ThymeleafView) context.getBean(ThymeleafViewResolver.class) .resolveViewName("view", Locale.UK); MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletRequest request = new MockHttpServletRequest(); request.setAttribute(RequestContext.WEB_APPLICATION_CONTEXT_ATTRIBUTE, context); view.render(Collections.singletonMap("foo", "bar"), request, response); String result = response.getContentAsString(); assertThat(result).contains("<title>Content</title>"); assertThat(result).contains("<span>bar</span>"); context.close(); }
@Override protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { Resource templateFile = getApplicationContext().getResource(getUrl()); String rcKey = getRequestContextAttribute(); RequestContext rc = (RequestContext)model.get(rcKey); Theme theme = getTheme(templateFile.getFile().getParent()); Chunk chunk = theme.makeChunk(getBeanName()); chunk.setLocale(rc.getLocale()); chunk.setMultiple(model); chunk.set(rcKey, mapifyRequestContext(rc, request)); PrintWriter writer = response.getWriter(); chunk.render(writer); writer.flush(); writer.close(); }
private Map<String,String> mapifyRequestContext(RequestContext rc, HttpServletRequest request) { Map<String,String> rcMap = new HashMap<String,String>(); // expose some potentially useful info to the template via the {$rc} tag rcMap.put("uri", rc.getRequestUri()); rcMap.put("context_path", rc.getContextPath()); rcMap.put("servlet_path", rc.getPathToServlet()); rcMap.put("scheme", request.getScheme()); rcMap.put("method", request.getMethod()); rcMap.put("server_name", request.getServerName()); rcMap.put("remote_addr", request.getRemoteAddr()); rcMap.put("remote_host", request.getRemoteHost()); rcMap.put("remote_user", request.getRemoteUser()); return rcMap; }
@Test public void createLayoutFromConfigClass() throws Exception { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.register(ThymeleafAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class); MockServletContext servletContext = new MockServletContext(); context.setServletContext(servletContext); context.refresh(); ThymeleafView view = (ThymeleafView) context.getBean(ThymeleafViewResolver.class) .resolveViewName("view", Locale.UK); MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletRequest request = new MockHttpServletRequest(); request.setAttribute(RequestContext.WEB_APPLICATION_CONTEXT_ATTRIBUTE, context); view.render(Collections.singletonMap("foo", "bar"), request, response); String result = response.getContentAsString(); assertTrue("Wrong result: " + result, result.contains("<title>Content</title>")); assertTrue("Wrong result: " + result, result.contains("<span>bar</span>")); context.close(); }
public void testExposeSpringMacroHelpers() throws Exception { VelocityView vv = new VelocityView() { @Override protected void mergeTemplate(Template template, Context context, HttpServletResponse response) { assertTrue(context.get(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE) instanceof RequestContext); RequestContext rc = (RequestContext) context.get(VelocityView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE); BindStatus status = rc.getBindStatus("tb.name"); assertEquals("name", status.getExpression()); assertEquals("juergen", status.getValue()); } }; vv.setUrl(TEMPLATE_FILE); vv.setApplicationContext(wac); vv.setExposeSpringMacroHelpers(true); Map<String, Object> model = new HashMap<String, Object>(); model.put("tb", new TestBean("juergen", 99)); vv.render(model, request, response); }
public void testRequestContext() throws ServletException { PageContext pc = createPageContext(); RequestContext rc = new RequestContext((HttpServletRequest) pc.getRequest(), pc.getServletContext()); assertEquals("test message", rc.getMessage("test")); assertEquals("test message", rc.getMessage("test", (Object[]) null)); assertEquals("test message", rc.getMessage("test", "default")); assertEquals("test message", rc.getMessage("test", (Object[]) null, "default")); assertEquals("test arg1 message arg2", rc.getMessage("testArgs", new String[] {"arg1", "arg2"}, "default")); assertEquals("test arg1 message arg2", rc.getMessage("testArgs", Arrays.asList(new String[] {"arg1", "arg2"}), "default")); assertEquals("default", rc.getMessage("testa", "default")); assertEquals("default", rc.getMessage("testa", (List) null, "default")); MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String[] {"test"}); assertEquals("test message", rc.getMessage(resolvable)); }
public void testRequestContext() throws ServletException { PageContext pc = createPageContext(); RequestContext rc = new RequestContext((HttpServletRequest) pc.getRequest()); assertEquals("theme test message", rc.getThemeMessage("themetest")); assertEquals("theme test message", rc.getThemeMessage("themetest", (String[]) null)); assertEquals("theme test message", rc.getThemeMessage("themetest", "default")); assertEquals("theme test message", rc.getThemeMessage("themetest", (Object[]) null, "default")); assertEquals("theme test message arg1", rc.getThemeMessage("themetestArgs", new String[] {"arg1"})); assertEquals("theme test message arg1", rc.getThemeMessage("themetestArgs", Arrays.asList(new String[] {"arg1"}))); assertEquals("default", rc.getThemeMessage("themetesta", "default")); assertEquals("default", rc.getThemeMessage("themetesta", (List) null, "default")); MessageSourceResolvable resolvable = new DefaultMessageSourceResolvable(new String[] {"themetest"}); assertEquals("theme test message", rc.getThemeMessage(resolvable)); }
@RequestMapping(value="/app/") public String app(ModelMap model, HttpServletRequest request, @RequestParam(value="_escaped_fragment_", required=false) String fragment) throws UnsupportedEncodingException { // render static html for crawlers if (fragment != null && !fragment.isEmpty() && fragment.startsWith("/show")) { String[] split = URLDecoder.decode(fragment, "UTF-8").split("/"); return "forward:/doc/" + split[2] + ".html"; } Arrays.sort(idTypes, String.CASE_INSENSITIVE_ORDER); model.addAttribute("baseUri",baseUri); Locale locale = new RequestContext(request).getLocale(); model.addAttribute("language", locale.getLanguage()); model.addAttribute("languages", langHelper.getLocalizedLanguages(locale)); model.addAttribute("googleMapsApiKey", googleMapsApiKey); model.addAttribute("idTypes", idTypes); model.addAttribute("placeTypes", placeTypes); model.addAttribute("placeTypeGroups", placeTypeGroups); model.addAttribute("placeTypeGroupIds", placeTypeGroupIds); model.addAttribute("version", version); logger.info("accept: {}", request.getHeader("Accept")); return "app/index"; }
private String returnRegisterFailure(String failureType, HttpServletRequest request, String r, ModelMap model) { Locale locale = new RequestContext(request).getLocale(); model.addAttribute("register_username_value", request.getParameter("register_username")); model.addAttribute("register_firstname_value", request.getParameter("register_firstname")); model.addAttribute("register_lastname_value", request.getParameter("register_lastname")); model.addAttribute("register_institution_value", request.getParameter("register_institution")); model.addAttribute("register_email_value", request.getParameter("register_email")); model.addAttribute("r", r); model.addAttribute("failure", failureType); model.addAttribute("version", version); model.addAttribute("language", locale.getLanguage()); return "register"; }
private void sendNotificationMail(Place place1, Place place2, HttpServletRequest request) throws MessagingException { if (mergeNotificationMail == null || mergeNotificationMail.isEmpty()) return; String place1Name = (place1.getPrefName() != null) ? place1.getPrefName().getTitle() : ""; String place2Name = (place2.getPrefName() != null) ? place2.getPrefName().getTitle() : ""; String link = baseUri + "place/" + place1.getId(); RequestContext context = new RequestContext(request); String subject = context.getMessage("mail.mergeNotification.subject", new Object[] { }); String content = context.getMessage("mail.mergeNotification.content", new Object[] { place2Name, place2.getId(), link, place1Name, place1.getId() }); mailService.sendMail(mergeNotificationMail, subject, content); logger.info("Sending merge notification mail to " + mergeNotificationMail); }
@ResponseBody @RequestMapping(value = "/help/", method = RequestMethod.GET, produces = "text/plain; charset=utf-8") public String getText(HttpServletRequest request) throws Exception { User user = null; Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); if (principal instanceof User) user = (User) principal; RequestContext requestContext = new RequestContext(request); Locale locale = requestContext.getLocale(); HelpText helpText = helpTextDao.findByLanguageAndLoginNeeded(locale.getISO3Language(), user != null); if (helpText == null) return ""; else return helpText.getText(); }
@Test public void createLayoutFromConfigClass() throws Exception { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.register(Jade4JAutoConfiguration.class, PropertyPlaceholderAutoConfiguration.class); MockServletContext servletContext = new MockServletContext(); context.setServletContext(servletContext); context.refresh(); JadeView view = (JadeView) context.getBean(JadeViewResolver.class).resolveViewName("demo", Locale.UK); MockHttpServletResponse response = new MockHttpServletResponse(); MockHttpServletRequest request = new MockHttpServletRequest(); request.setAttribute(RequestContext.WEB_APPLICATION_CONTEXT_ATTRIBUTE, context); view.render(params(), request, response); String result = response.getContentAsString(); assertTrue("Wrong result: " + result, result.contains("<title>Jade</title>")); assertTrue("Wrong result: " + result, result.contains("<h2>With user</h2>")); context.close(); }
public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception { if (modelAndView == null) { return; } Map<String, Object> messages = new LinkedHashMap<>(); RequestContext requestContext = new RequestContext(httpServletRequest); messages.put(Scheduled.toString().toLowerCase(), "Scheduled"); messages.put(CurrentStatus.BUILDING.getStatus().toLowerCase(), requestContext.getMessage(BUILDING)); messages.put(CurrentStatus.DISCONTINUED.getStatus().toLowerCase(), requestContext.getMessage(DISCONTINUED)); messages.put(CurrentStatus.PAUSED.getStatus().toLowerCase(), requestContext.getMessage(PAUSED)); messages.put(CurrentStatus.QUEUED.getStatus().toLowerCase(), requestContext.getMessage(QUEUED)); messages.put(CurrentStatus.WAITING.getStatus().toLowerCase(), requestContext.getMessage(WAITING)); messages.put(CurrentResult.PASSED.getStatus().toLowerCase(), requestContext.getMessage(PASSED).toLowerCase()); messages.put(CurrentResult.FAILED.getStatus().toLowerCase(), requestContext.getMessage(FAILED).toLowerCase()); messages.put(CurrentResult.UNKNOWN.getStatus().toLowerCase(), requestContext.getMessage(UNKNOWN).toLowerCase()); messages.put("last", requestContext.getMessage("label.last")); String javascriptMessages = new JsonView().renderJson(messages); modelAndView.addObject(JAVASCRIPT_MESSAGES_KEY, javascriptMessages); }
@Override public void resolveData(final HttpServletRequest request, final HttpServletResponse response, final Map<String, ? extends Object> model, final SoyMapData root) { final RequestContext requestContext = new RequestContext(request, response, servletContext, (Map<String, Object>) model); if (requestContext.getContextPath() != null) { root.put(prefix + "contextPath", requestContext.getContextPath()); } if (requestContext.getPathToServlet() != null) { root.put(prefix + "pathToServlet", requestContext.getPathToServlet()); } if (requestContext.getQueryString() != null) { root.put(prefix + "queryString", requestContext.getQueryString()); } if (requestContext.getRequestUri() != null) { root.put(prefix + "requestUri", requestContext.getRequestUri()); } if (requestContext.getLocale() != null) { root.put(prefix + "locale", requestContext.getLocale().toString()); } }
public String menuSelected(RequestContext request, String menuUrl, String cssName){ String url = request.getRequestUri(); String ct = ContextConfig.get("contextPath"); url = url.replace(ct, ""); if (menuUrl.startsWith("/")){ menuUrl = menuUrl.substring(1); } if (url.startsWith("/")){ url = url.substring(1); } if (menuUrl.length() >0 && url.startsWith(menuUrl)){ return cssName; } if (menuUrl.equalsIgnoreCase(url)){ return cssName; } return ""; }
@Test public void verifyView() throws Exception { final ModelAndView modelAndView = this.getModelAndViewUponServiceValidationWithSecurePgtUrl(); final MockHttpServletRequest req = new MockHttpServletRequest(new MockServletContext()); req.setAttribute(RequestContext.WEB_APPLICATION_CONTEXT_ATTRIBUTE, new GenericWebApplicationContext(req.getServletContext())); final MockHttpServletResponse resp = new MockHttpServletResponse(); final View delegatedView = new View() { @Override public String getContentType() { return "text/html"; } @Override public void render(final Map<String, ?> map, final HttpServletRequest request, final HttpServletResponse response) throws Exception { map.forEach(request::setAttribute); } }; final Cas20ResponseView view = new Cas20ResponseView(true, null, null, "attribute", delegatedView); view.render(modelAndView.getModel(), req, resp); assertNotNull(req.getAttribute(CasViewConstants.MODEL_ATTRIBUTE_NAME_CHAINED_AUTHENTICATIONS)); assertNotNull(req.getAttribute(CasViewConstants.MODEL_ATTRIBUTE_NAME_PRIMARY_AUTHENTICATION)); assertNotNull(req.getAttribute(CasViewConstants.MODEL_ATTRIBUTE_NAME_PRINCIPAL)); assertNotNull(req.getAttribute(CasProtocolConstants.VALIDATION_CAS_MODEL_PROXY_GRANTING_TICKET_IOU)); }
protected String getMessage( HttpServletRequest request, String key, Object[] args) { String message = messageSource.getMessage( key, args, "???" + key + "???", new RequestContext(request).getLocale()); return message; }
@Override protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception { exposeModelAsRequestAttributes(model, request); if (this.exposeJstlAttributes) { JstlUtils.exposeLocalizationContext(new RequestContext(request, getServletContext())); } if (this.alwaysInclude) { request.setAttribute(AbstractRequest.FORCE_INCLUDE_ATTRIBUTE_NAME, true); } Request tilesRequest = createTilesRequest(request, response); this.renderer.render(getUrl(), tilesRequest); }
/** * Exposes a JSTL LocalizationContext for Spring's locale and MessageSource. * @see JstlUtils#exposeLocalizationContext */ @Override protected void exposeHelpers(HttpServletRequest request) throws Exception { if (this.messageSource != null) { JstlUtils.exposeLocalizationContext(request, this.messageSource); } else { JstlUtils.exposeLocalizationContext(new RequestContext(request, getServletContext())); } }
private void doTestUrlBasedViewResolverWithoutPrefixes(UrlBasedViewResolver vr) throws Exception { StaticWebApplicationContext wac = new StaticWebApplicationContext(); wac.setServletContext(new MockServletContext()); wac.refresh(); vr.setApplicationContext(wac); vr.setContentType("myContentType"); vr.setRequestContextAttribute("rc"); View view = vr.resolveViewName("example1", Locale.getDefault()); assertEquals("Correct view class", JstlView.class, view.getClass()); assertEquals("Correct URL", "example1", ((InternalResourceView) view).getUrl()); assertEquals("Correct textContentType", "myContentType", ((InternalResourceView) view).getContentType()); view = vr.resolveViewName("example2", Locale.getDefault()); assertEquals("Correct view class", JstlView.class, view.getClass()); assertEquals("Correct URL", "example2", ((InternalResourceView) view).getUrl()); assertEquals("Correct textContentType", "myContentType", ((InternalResourceView) view).getContentType()); HttpServletRequest request = new MockHttpServletRequest(wac.getServletContext()); HttpServletResponse response = new MockHttpServletResponse(); request.setAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac); request.setAttribute(DispatcherServlet.LOCALE_RESOLVER_ATTRIBUTE, new AcceptHeaderLocaleResolver()); request.setAttribute(DispatcherServlet.THEME_RESOLVER_ATTRIBUTE, new FixedThemeResolver()); Map model = new HashMap(); TestBean tb = new TestBean(); model.put("tb", tb); view.render(model, request, response); assertTrue("Correct tb attribute", tb.equals(request.getAttribute("tb"))); assertTrue("Correct rc attribute", request.getAttribute("rc") instanceof RequestContext); view = vr.resolveViewName("redirect:myUrl", Locale.getDefault()); assertEquals("Correct view class", RedirectView.class, view.getClass()); assertEquals("Correct URL", "myUrl", ((RedirectView) view).getUrl()); assertSame("View not initialized as bean", wac, ((RedirectView) view).getApplicationContext()); view = vr.resolveViewName("forward:myUrl", Locale.getDefault()); assertEquals("Correct view class", InternalResourceView.class, view.getClass()); assertEquals("Correct URL", "myUrl", ((InternalResourceView) view).getUrl()); }
@Override protected void exposeBindingResult(Errors errors) { // wrap errors in a Model Map model = new HashMap(); model.put(BindingResult.MODEL_KEY_PREFIX + COMMAND_NAME, errors); // replace the request context with one containing the errors MockPageContext pageContext = getPageContext(); RequestContext context = new RequestContext((HttpServletRequest) pageContext.getRequest(), model); pageContext.setAttribute(RequestContextAwareTag.REQUEST_CONTEXT_PAGE_ATTRIBUTE, context); }
protected MockPageContext createAndPopulatePageContext() throws JspException { MockPageContext pageContext = createPageContext(); MockHttpServletRequest request = (MockHttpServletRequest) pageContext.getRequest(); StaticWebApplicationContext wac = (StaticWebApplicationContext) RequestContextUtils.findWebApplicationContext(request); wac.registerSingleton("requestDataValueProcessor", RequestDataValueProcessorWrapper.class); extendRequest(request); extendPageContext(pageContext); RequestContext requestContext = new JspAwareRequestContext(pageContext); pageContext.setAttribute(RequestContextAwareTag.REQUEST_CONTEXT_PAGE_ATTRIBUTE, requestContext); return pageContext; }
protected void exposeBindingResult(Errors errors) { // wrap errors in a Model Map<String, Object> model = Collections.singletonMap( BindingResult.MODEL_KEY_PREFIX + COMMAND_NAME, errors); // replace the request context with one containing the errors MockPageContext pageContext = getPageContext(); RequestContext context = new RequestContext((HttpServletRequest) pageContext.getRequest(), model); pageContext.setAttribute(RequestContextAwareTag.REQUEST_CONTEXT_PAGE_ATTRIBUTE, context); }
private MockHttpServletResponse render(String viewName) throws Exception { FreeMarkerViewResolver resolver = this.context .getBean(FreeMarkerViewResolver.class); View view = resolver.resolveViewName(viewName, Locale.UK); assertThat(view).isNotNull(); HttpServletRequest request = new MockHttpServletRequest(); request.setAttribute(RequestContext.WEB_APPLICATION_CONTEXT_ATTRIBUTE, this.context); MockHttpServletResponse response = new MockHttpServletResponse(); view.render(null, request, response); return response; }