下面列出了freemarker.template.SimpleHash#putAll ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
if(!params.containsKey("with")) {
throw new RuntimeException("\"with\" param was not provided");
}
String withArgument = params.get("with").toString();
StringWriter innerContent = new StringWriter();
body.render(innerContent);
SimpleHash envValues = getHash(env);
envValues.putAll(params);
envValues.put("page_content", innerContent.toString());
for(Object key : params.keySet()) {
if(key.toString().equals("with")) {
continue;
} else {
envValues.put(key.toString(), params.get(key));
}
}
String path = getTemplatePath(env.getTemplate().getName(), withArgument);
Template template = env.getConfiguration().getTemplate(path + ".ftl");
template.process(envValues, env.getOut());
}
protected SimpleHash getFullModel(SiteItem component, Map<String, Object> templateModel,
Map<String, Object> additionalModel) throws TemplateException {
SimpleHash model = modelFactory.getObject();
model.put(KEY_MODEL, component);
model.put(KEY_CONTENT_MODEL, component);
if (MapUtils.isNotEmpty(templateModel)) {
model.putAll(templateModel);
}
if (MapUtils.isNotEmpty(additionalModel)) {
model.putAll(additionalModel);
}
return model;
}
/**
* Build a FreeMarker template model for the given model Map.
* <p>The default implementation builds a {@link SimpleHash}.
* @param model the model to use for rendering
* @param exchange current exchange
* @return the FreeMarker template model, as a {@link SimpleHash} or subclass thereof
*/
protected SimpleHash getTemplateModel(Map<String, Object> model, ServerWebExchange exchange) {
SimpleHash fmModel = new SimpleHash(getObjectWrapper());
fmModel.putAll(model);
return fmModel;
}
/**
* Build a FreeMarker template model for the given model Map.
* <p>The default implementation builds a {@link SimpleHash}.
* @param model the model to use for rendering
* @param exchange current exchange
* @return the FreeMarker template model, as a {@link SimpleHash} or subclass thereof
*/
protected SimpleHash getTemplateModel(Map<String, Object> model, ServerWebExchange exchange) {
SimpleHash fmModel = new SimpleHash(getObjectWrapper());
fmModel.putAll(model);
return fmModel;
}