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

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

源代码1 项目: spring-analysis-note   文件: TilesView.java
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
		HttpServletResponse response) throws Exception {

	Assert.state(this.renderer != null, "No Renderer set");

	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);
}
 
源代码2 项目: BlogSystem   文件: EmailController.java
/**
 * 发送反馈邮件
 */
@RequestMapping(value = "/feedback", method = RequestMethod.POST)
public ResultBean sendFeedback(HttpServletRequest request,
                               @RequestParam(value = "bloggerId", required = false) Integer bloggerId,
                               @RequestParam("content") String content,
                               @RequestParam(value = "contact", required = false) String contact) {
    if (bloggerId != null) {
        handleBloggerSignInCheck(request, bloggerId);
    }

    String subject = new RequestContext(request).getMessage("common.feedbackTitle");
    if (!emailService.sendFeedback(bloggerId == null ? -1 : bloggerId, subject, content, contact))
        handlerOperateFail(request);

    return new ResultBean<>("");
}
 
源代码3 项目: spring-analysis-note   文件: MessageTagTests.java
@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));
}
 
源代码4 项目: spring-analysis-note   文件: ThemeTagTests.java
@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));
}
 
源代码5 项目: java-technology-stack   文件: TilesView.java
@Override
protected void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request,
		HttpServletResponse response) throws Exception {

	Assert.state(this.renderer != null, "No Renderer set");

	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);
}
 
源代码6 项目: spring4-understanding   文件: ThemeTagTests.java
@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));
}
 
源代码7 项目: lams   文件: AbstractJasperReportsView.java
/**
 * 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));
	}
}
 
源代码8 项目: BlogSystem   文件: ImageController.java
/**
 * 输出公开图片,这些图片无需验证登录,如果数据库不存在指定图片,则返回默认图片
 */
@RequestMapping(value = "/type=public/{imageId}", method = RequestMethod.GET)
public void getBlogPicture(HttpServletRequest request, HttpServletResponse response,
                           @PathVariable("bloggerId") Integer bloggerId,
                           @PathVariable("imageId") Integer imageId,
                           @RequestParam(value = "default", required = false) Integer category) {
    handleAccountCheck(request, bloggerId);

    // 检查default是否为默认类别
    if (category != null)
        handleBlogCategoryDefaultCheck(request, category);

    BloggerPicture picture = bloggerPictureService.getPicture(imageId, bloggerId);

    // 如果图片是私有的,不能访问
    if (picture != null && picture.getCategory().equals(BloggerPictureCategoryEnum.PRIVATE.getCode()))
        throw exceptionManager.getUnauthorizedException(new RequestContext(request));

    BloggerPicture backupPicture = bloggerPictureService.getDefaultPicture(
            category == null ? BloggerPictureCategoryEnum.DEFAULT_PICTURE
                    : BloggerPictureCategoryEnum.valueOf(category)); //如果目标图片不存在,返回指定类别的默认图片

    // 输出图片
    outPutPicture(picture, backupPicture, request, response);

}
 
源代码9 项目: java-technology-stack   文件: MessageTagTests.java
@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));
}
 
源代码10 项目: BlogSystem   文件: BloggerGalleryController.java
/**
 * 从设备和数据库中删除图片
 */
@RequestMapping(value = "/{pictureId}", method = RequestMethod.DELETE)
@ResponseBody
public ResultBean delete(HttpServletRequest request,
                         @PathVariable("bloggerId") Integer bloggerId,
                         @PathVariable("pictureId") Integer pictureId) {
    handleBloggerSignInCheck(request, bloggerId);

    BloggerPicture picture = bloggerPictureService.getPicture(pictureId, bloggerId);
    if (picture == null) {
        throw exceptionManager.getUnknownPictureException(new RequestContext(request));
    }

    //检查权限
    if (!validateManager.checkBloggerPictureLegal(bloggerId, picture.getCategory()))
        throw exceptionManager.getUnauthorizedException(new RequestContext(request));

    boolean succ = bloggerPictureService.deletePicture(bloggerId, picture.getId(), true);
    if (!succ) handlerOperateFail(request);

    return new ResultBean<>("");
}
 
源代码11 项目: lams   文件: TilesView.java
@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);
}
 
源代码12 项目: BlogSystem   文件: BloggerBlogController.java
/**
 * 下载博文
 */
@RequestMapping(value = "/download-type={type}", method = RequestMethod.GET)
public void download(HttpServletRequest request, HttpServletResponse response,
                     @PathVariable Integer bloggerId,
                     @PathVariable String type) {
    handleBloggerSignInCheck(request, bloggerId);

    // 检查请求的文件类别
    BlogFormatEnum format = BlogFormatEnum.get(type);
    if (format == null) {
        throw exceptionManager.getParameterIllegalException(new RequestContext(request));
    }

    String zipFilePath = bloggerBlogService.getAllBlogForDownload(bloggerId, format);
    if (StringUtils.isEmpty(zipFilePath)) handlerOperateFail(request);

    // 输出文件流
    outFile(zipFilePath, request, response);

    // 删除临时 zip 文件
    fileManager.deleteFileIfExist(zipFilePath);
}
 
源代码13 项目: BlogSystem   文件: BloggerCollectBlogController.java
/**
 * 修改博文收藏
 */
@RequestMapping(value = "/{blogId}", method = RequestMethod.PUT)
public ResultBean update(HttpServletRequest request,
                         @PathVariable("blogId") Integer blogId,
                         @PathVariable("bloggerId") Integer bloggerId,
                         @RequestParam(value = "reason", required = false) String newReason) {

    handleBloggerSignInCheck(request, bloggerId);

    if (StringUtils.isEmpty(newReason)) {
        throw exceptionManager.getParameterIllegalException(new RequestContext(request));
    }

    boolean result = bloggerCollectBlogService.updateCollect(bloggerId, blogId, newReason, -1);
    if (!result) handlerOperateFail(request);

    return new ResultBean<>("");
}
 
源代码14 项目: BlogSystem   文件: BloggerOperateController.java
/**
 * 投诉博文
 */
@RequestMapping(value = "/operate=complain", method = RequestMethod.POST)
public ResultBean complainBlog(HttpServletRequest request,
                               @PathVariable Integer blogId,
                               @PathVariable Integer bloggerId,
                               @RequestParam("content") String content) {
    if (StringUtils.isEmpty_(content))
        throw exceptionManager.getParameterIllegalException(new RequestContext(request));

    handleBloggerSignInCheck(request, bloggerId);
    handleBlogExistCheck(request, blogId);

    //执行
    int id = operateService.insertComplain(blogId, bloggerId, content);
    if (id <= 0) handlerOperateFail(request);

    return new ResultBean<>(id);
}
 
源代码15 项目: BlogSystem   文件: BloggerCommentController.java
/**
 * 新增评论
 */
@RequestMapping(method = RequestMethod.POST)
public ResultBean add(HttpServletRequest request,
                      @PathVariable Integer bloggerId,
                      @RequestParam("blogId") Integer blogId,
                      @RequestParam("content") String content,
                      @RequestParam("listenerId") Integer listenerId) {
    handleBloggerSignInCheck(request, bloggerId);
    handleBlogExistCheck(request, blogId);
    handleBloggerExist(request, listenerId);

    if (StringUtils.isEmpty_(content) || !commentValidateManager.checkCommentContent(content))
        throw exceptionManager.getParameterIllegalException(new RequestContext(request));

    int id = commentService.insertComment(blogId, bloggerId, listenerId, RIGHTFUL.getCode(), content);
    if (id < 0) handlerOperateFail(request);

    return new ResultBean<>(id);
}
 
@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());
    }
}
 
源代码17 项目: spring-analysis-note   文件: ViewResolverTests.java
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<String, Object> 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());
}
 
源代码18 项目: sinavi-jfw   文件: PageNavigationTagTest.java
@Before
public void setUp() {

    MockServletContext sc = new MockServletContext();
    WebApplicationContext wac = new StaticWebApplicationContext();
    sc.setAttribute(WebApplicationContext.ROOT_WEB_APPLICATION_CONTEXT_ATTRIBUTE, wac);
    req = new MockHttpServletRequest(sc);
    resp = new MockHttpServletResponse();
    context = new MockPageContext(sc, req, resp);
    rcon = new RequestContext(req, sc);
    context.setAttribute(RequestContextAwareTag.REQUEST_CONTEXT_PAGE_ATTRIBUTE, rcon);
}
 
@Override
protected void renderMergedOutputModel(
		Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
	RequestContext rc = new RequestContext(request, model);
	rc.getBindStatus("dataClass");
	rc.getBindStatus("dataClass.param1");
	rc.getBindStatus("dataClass.param2");
	rc.getBindStatus("dataClass.param3");
	response.getWriter().write(this.content);
}
 
源代码20 项目: es   文件: SearchBindStatus.java
public static BindStatus create(PageContext pageContext, String name, RequestContext requestContext, boolean htmlEscape) {
    pageContext.getRequest().setAttribute(pathToUse, SearchModel.EMPTY);
    SearchBindStatus bindStatus = new SearchBindStatus(requestContext, pathToUse, htmlEscape);
    bindStatus.value = getValue(pageContext, name);
    bindStatus.htmlEscape = htmlEscape;
    return bindStatus;
}
 
protected MockPageContext createAndPopulatePageContext() throws JspException {
	MockPageContext pageContext = createPageContext();
	MockHttpServletRequest request = (MockHttpServletRequest) pageContext.getRequest();
	((StaticWebApplicationContext) RequestContextUtils.findWebApplicationContext(request))
			.registerSingleton("requestDataValueProcessor", RequestDataValueProcessorWrapper.class);
	extendRequest(request);
	extendPageContext(pageContext);
	RequestContext requestContext = new JspAwareRequestContext(pageContext);
	pageContext.setAttribute(RequestContextAwareTag.REQUEST_CONTEXT_PAGE_ATTRIBUTE, requestContext);
	return pageContext;
}
 
源代码22 项目: ogham   文件: SpringWebThymeleafContextConverter.java
protected static void addRequestContextAsVariable(final Map<String, Object> model, final String variableName, final RequestContext requestContext) throws ContextException {

		if (model.containsKey(variableName)) {
			throw new ContextException(new ServletException("Cannot expose request context in model attribute '" + variableName + "' because of an existing model object of the same name"));
		}
		model.put(variableName, requestContext);

	}
 
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);
}
 
源代码24 项目: spring-analysis-note   文件: OptionsTagTests.java
@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);
}
 
源代码25 项目: java-technology-stack   文件: JstlView.java
/**
 * 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()));
	}
}
 
@Override
protected void renderMergedOutputModel(
		Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {
	RequestContext rc = new RequestContext(request, model);
	rc.getBindStatus("dataClass");
	rc.getBindStatus("dataClass.param1");
	rc.getBindStatus("dataClass.param2");
	rc.getBindStatus("dataClass.param3");
	response.getWriter().write(this.content);
}
 
源代码27 项目: java-technology-stack   文件: ErrorsTagTests.java
@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 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);
}
 
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;
}
 
源代码30 项目: ogham   文件: SpringWebThymeleafContextConverter.java
@Override
public IContext convert(fr.sii.ogham.core.template.context.Context context) throws ContextException {
	IContext base = delegate.convert(context);
	
	// the web context may be lost due to @Async method call
	if (isAsyncCall()) {
		return base;
	}

	// partially borrowed from org.thymeleaf.spring5.view.ThymeleafView
	final Map<String, Object> springModel = new HashMap<>(30);

	HttpServletRequest request = webContextProvider.getRequest(context);
	HttpServletResponse response = webContextProvider.getResponse(context);
	ServletContext servletContext = webContextProvider.getServletContext(context);

	if (pathVariablesSelector != null) {
		@SuppressWarnings("unchecked")
		final Map<String, Object> pathVars = (Map<String, Object>) request.getAttribute(pathVariablesSelector);
		if (pathVars != null) {
			springModel.putAll(pathVars);
		}
	}

	final RequestContext requestContext = new RequestContext(request, response, servletContext, springModel);

	// For compatibility with ThymeleafView
	addRequestContextAsVariable(springModel, springRequestContextVariableName, requestContext);
	// For compatibility with AbstractTemplateView
	addRequestContextAsVariable(springModel, AbstractTemplateView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE, requestContext);

	thymeleafRequestContextWrapper.wrapAndRegister(requestContext, request, response, servletContext, springModel);

	return contextMerger.merge(thymeleafWebContextProvider.getWebContext(context, base, request, response, servletContext, applicationContext, springModel), base);
}
 
 类方法
 同包方法