下面列出了怎么用org.springframework.web.servlet.view.AbstractTemplateView的API类实例代码及写法,或者点击链接到github查看源代码。
@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);
}