类org.springframework.web.servlet.view.AbstractTemplateView源码实例Demo

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

源代码1 项目: java-platform   文件: I18nFunction.java
@Override
public Object call(Object[] paras, Context ctx) {

	RequestContext requestContext = (RequestContext) ctx
			.getGlobal(AbstractTemplateView.SPRING_MACRO_REQUEST_CONTEXT_ATTRIBUTE);

	Assert.notNull(requestContext);
	Assert.notNull(paras);
	Assert.isTrue(paras.length > 0);

	String code = (String) paras[0];
	Object[] args = paras.length > 1 ? Arrays.copyOfRange(paras, 1, paras.length) : null;

	return requestContext.getMessage(code, args);
}
 
@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);
}
 
 同包方法