Java 类freemarker.template.TemplateHashModel 实例源码
项目:scipio-erp
文件:TransformUtil.java
/**
* Gets a deep-unwrapped map.
* FIXME: nonEscaping bool is currently not handled... it may bypass escaping in some cases but not others...
*/
public static <K,V> Map<K, V> getMapArg(TemplateModel obj, Map<K, V> defaultValue, boolean useDefaultWhenEmpty, boolean nonEscaping) throws TemplateModelException {
if (!nonEscaping) {
throw new UnsupportedOperationException("getMapArg currently only supports escaping-bypassing (nonEscaping true)");
}
Map<K, V> result = null;
if (obj instanceof TemplateHashModel) {
result = UtilGenerics.checkMap(LangFtlUtil.unwrapAlways(obj));
} else if (obj == null) {
return defaultValue;
} else {
throw new TemplateModelException("Expected hash/map model or something coercible to map, but got a " +
obj.getClass() + " instead");
}
if (useDefaultWhenEmpty && result.isEmpty()) {
return defaultValue;
}
return result;
}
项目:scipio-erp
文件:LangFtlUtil.java
/**
* Copies map.
* <p>
* WARN: For complex maps, auto-escaping is bypassed; caller must decide how to handle.
* (e.g. the object wrapper used to rewrap the result).
* <p>
* FIXME: The rewrapping objectWrapper behavior is inconsistent! may lead to auto-escape issues
*/
public static Object copyMap(TemplateModel object, Set<String> inExKeys, Boolean include,
TemplateValueTargetType targetType, ObjectWrapper objectWrapper) throws TemplateModelException {
if (targetType == null) {
targetType = TemplateValueTargetType.PRESERVE;
}
if (OfbizFtlObjectType.COMPLEXMAP.isObjectType(object)) {
// WARN: bypasses auto-escaping
Map<String, Object> wrappedObject = UtilGenerics.cast(((WrapperTemplateModel) object).getWrappedObject());
// TODO: this only handles most urgent targetType case
if (targetType == TemplateValueTargetType.SIMPLEMODEL) {
return LangFtlUtil.copyMapToSimple(wrappedObject, inExKeys, include, objectWrapper);
}
else {
return LangFtlUtil.copyMapToRawMap(wrappedObject, inExKeys, include);
}
}
else if (object instanceof TemplateHashModel && OfbizFtlObjectType.MAP.isObjectType(object)) {
// TODO: this ignores targetType
return LangFtlUtil.copyMapToSimple((TemplateHashModel) object, inExKeys, include, objectWrapper);
}
throw new TemplateModelException("Cannot copy map of type " + object.getClass().toString() +
" to target type: " + targetType.toString());
}
项目:scipio-erp
文件:LangFtlUtil.java
/**
* Converts map to a simple wrapper, if applicable. Currently only applies to complex maps.
* <p>
* 2017-01-26: This has been changed so that it will by default try to wrap everything
* with DefaultMapAdapter (or SimpleMapModel for BeansWrapper compatibility), which will always work as long as
* the ObjectWrapper implements ObjectWrapperWithAPISupport.
* <p>
* WARN: Bypasses auto-escaping for complex maps; caller must decide how to handle
* (e.g. the object wrapper used to rewrap the result).
* Other types of maps are not altered.
*/
public static TemplateHashModel toSimpleMap(TemplateModel object, Boolean copy, ObjectWrapper objectWrapper) throws TemplateModelException {
if (OfbizFtlObjectType.COMPLEXMAP.isObjectType(object)) {
// WARN: bypasses auto-escaping
Map<?, ?> wrappedObject = UtilGenerics.cast(((WrapperTemplateModel) object).getWrappedObject());
if (Boolean.TRUE.equals(copy)) {
return makeSimpleMapCopy(wrappedObject, objectWrapper);
} else {
return makeSimpleMapAdapter(wrappedObject, objectWrapper, true);
}
} else if (object instanceof TemplateHashModel) {
return (TemplateHashModel) object;
} else {
throw new TemplateModelException("object is not a recognized map type");
}
}
项目:scipio-erp
文件:LangFtlUtil.java
/**
* Converts map to a simple wrapper, if applicable, by rewrapping
* known complex map wrappers that implement <code>WrapperTemplateModel</code>.
* <p>
* If the specified ObjectWrapper is a BeansWrapper, this forces rewrapping as a SimpleMapModel.
* If it isn't we assume caller specified an objectWrapper that will rewrap the map with
* a simple model (we have no way of knowing).
* <p>
* WARN: Bypasses auto-escaping for complex maps; caller must decide how to handle
* (e.g. the object wrapper used to rewrap the result).
* Other types of maps are not altered.
*
* @deprecated don't use
*/
@Deprecated
private static TemplateHashModel toSimpleMapRewrapAdapters(TemplateModel object, ObjectWrapper objectWrapper) throws TemplateModelException {
if (object instanceof SimpleMapModel || object instanceof BeanModel || object instanceof DefaultMapAdapter) {
// Permissive
Map<?, ?> wrappedObject = (Map<?, ?>) ((WrapperTemplateModel) object).getWrappedObject();
if (objectWrapper instanceof BeansWrapper) {
// Bypass the beanswrapper wrap method and always make simple wrapper
return new SimpleMapModel(wrappedObject, (BeansWrapper) objectWrapper);
} else {
// If anything other than BeansWrapper, assume caller is aware and his wrapper will create a simple map
return (TemplateHashModel) objectWrapper.wrap(wrappedObject);
}
}
else if (object instanceof TemplateHashModel) {
return (TemplateHashModel) object;
}
else {
throw new TemplateModelException("object is not a recognized map type");
}
}
项目:scipio-erp
文件:LangFtlUtil.java
/**
* Converts map to a simple wrapper, if applicable, by rewrapping
* any map wrappers that implement <code>WrapperTemplateModel</code>.
* <p>
* This method is very permissive: anything that wraps a Map is accepted.
* Other types of hashes are returned as-is.
* <p>
* If the specified ObjectWrapper is a BeansWrapper, this forces rewrapping as a SimpleMapModel.
* If it isn't we assume caller specified an objectWrapper that will rewrap the map with
* a simple model (we have no way of knowing).
* <p>
* WARN: Bypasses auto-escaping for complex maps; caller must decide how to handle
* (e.g. the object wrapper used to rewrap the result).
* Other types of maps are not altered.
*
* @deprecated don't use
*/
@Deprecated
private static TemplateHashModel toSimpleMapRewrapAny(TemplateModel object, ObjectWrapper objectWrapper) throws TemplateModelException {
if (object instanceof WrapperTemplateModel) {
// Permissive
Map<?, ?> wrappedObject = (Map<?, ?>) ((WrapperTemplateModel) object).getWrappedObject();
if (objectWrapper instanceof BeansWrapper) {
// Bypass the beanswrapper wrap method and always make simple wrapper
return new SimpleMapModel(wrappedObject, (BeansWrapper) objectWrapper);
} else {
// If anything other than BeansWrapper, assume caller is aware and his wrapper will create a simple map
return (TemplateHashModel) objectWrapper.wrap(wrappedObject);
}
}
else if (object instanceof TemplateHashModel) {
return (TemplateHashModel) object;
}
else {
throw new TemplateModelException("object is not a recognized map type");
}
}
项目:GMM
文件:ApplicationConfiguration.java
/**
* FreeMarker (ftl) configuration
*/
@Bean
public FreeMarkerConfigurer freemarkerConfig() throws IOException, TemplateException {
final FreeMarkerConfigurer result = new FreeMarkerConfigurer();
// template path
result.setTemplateLoaderPath("/WEB-INF/ftl/");
result.setDefaultEncoding("UTF-8");
// static access
final Version version = freemarker.template.Configuration.getVersion();
final BeansWrapper wrapper = new BeansWrapper(version);
final TemplateHashModel statics = wrapper.getStaticModels();
final Map<String, Object> shared = new HashMap<>();
for (final Class<?> clazz : ElFunctions.staticClasses) {
shared.put(clazz.getSimpleName(), statics.get(clazz.getName()));
}
result.setFreemarkerVariables(shared);
return result;
}
项目:CSAR_Repository
文件:AbstractServlet.java
public Map<String, Object> getRoot(HttpServletRequest request) throws ServletException {
Map<String, Object> root = new HashMap<String, Object>();
root.put("basePath", this.getBasePath());
try {
BeansWrapper beansWrapper = new BeansWrapperBuilder(Configuration.VERSION_2_3_21).build();
TemplateHashModel staticModels = beansWrapper.getStaticModels();
TemplateHashModel stringUtils = (TemplateHashModel) staticModels.get(StringUtils.class.getCanonicalName());
TemplateHashModel planInvocationHelper = (TemplateHashModel) staticModels.get(PlanInvocationHelper.class
.getCanonicalName());
root.put("StringUtils", stringUtils);
root.put("PlanInvocationHelper", planInvocationHelper);
} catch (TemplateModelException e) {
throw new ServletException(e);
}
root.put(ERRORS, request.getSession().getAttribute(ERRORS));
root.put(SUCCESSES, request.getSession().getAttribute(SUCCESSES));
request.getSession().setAttribute(ERRORS, new ArrayList<String>());
request.getSession().setAttribute(SUCCESSES, new ArrayList<String>());
return root;
}
项目:TerraJ
文件:DetailsFromTemplate.java
/**
* Sets up the static and common template objects including static methods
* of math and constant classes. These are placed into a map for use by
* the templates.
*
* @param map The map to be populated by this method
* @throws freemarker.template.TemplateException If there is an error creating the objects
*/
protected void addStatics(Map<String, Object> map) throws TemplateException
{
BeansWrapper wrapper = BeansWrapper.getDefaultInstance();
TemplateHashModel staticModels = wrapper.getStaticModels();
TemplateHashModel constantStatics =
(TemplateHashModel) staticModels.get("com.alvermont.terraj.stargen.Constants");
map.put("constants", constantStatics);
TemplateHashModel mathStatics =
(TemplateHashModel) staticModels.get("java.lang.Math");
map.put("math", mathStatics);
TemplateHashModel uiStatics =
(TemplateHashModel) staticModels.get("com.alvermont.terraj.stargen.ui.UIUtils");
map.put("uiutils", uiStatics);
map.put("enviro", new Enviro());
map.put("imageroot", "images/");
}
项目:configx
文件:FreemarkerStaticModels.java
public static TemplateHashModel useStaticPackage(String key) {
try {
BeansWrapper wrapper = new BeansWrapperBuilder(Configuration.DEFAULT_INCOMPATIBLE_IMPROVEMENTS).build();
TemplateHashModel staticModels = wrapper.getStaticModels();
TemplateHashModel statics = (TemplateHashModel) staticModels.get(key);
return statics;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
项目:jkami
文件:FKParse.java
/***
* 拿到静态Class的Model
*
* @param config
* Configuration
* @param className
* className
* @return TemplateModel
*/
public static TemplateModel useClass(Configuration config, String className) {
BeansWrapper wrapper = (BeansWrapper) config.getObjectWrapper();
TemplateHashModel staticModels = wrapper.getStaticModels();
try {
return staticModels.get(className);
} catch (TemplateModelException e) {
e.printStackTrace();
}
throw new RuntimeException(className);
}
项目:scipio-erp
文件:MakeSectionsRendererMethod.java
public Object execTyped(List<TemplateModel> args) throws TemplateModelException {
if (args.size() != 2) {
throw new TemplateModelException("Invalid number of arguments (expected: 2)");
}
Environment env = FreeMarkerWorker.getCurrentEnvironment();
TemplateModel arg1 = args.get(0);
if (!(arg1 instanceof TemplateScalarModel)) {
throw new TemplateModelException("First argument (type) was not a string");
}
String type = LangFtlUtil.getAsStringNonEscaping((TemplateScalarModel) arg1);
TemplateModel arg2 = args.get(1);
if (!(arg2 instanceof TemplateHashModel)) {
throw new TemplateModelException("Second argument (sectionsMap) was not a map");
}
TemplateHashModelEx sectionsMapModel = (TemplateHashModelEx) LangFtlUtil.toSimpleMap(arg2, false, env.getObjectWrapper());
if ("ftl".equals(type)) {
FtlSectionsRenderer sections = FtlSectionsRenderer.create(sectionsMapModel);
return sections;
} else if ("screen".equals(type)) {
// TODO: "screen": WARN: due to build dependencies we won't be able to invoke widget renderer from here
// may be forced to use reflection (dirty)...
throw new TemplateModelException("First argument (type) currently only supports: ftl (screen type not yet implemented)");
} else {
throw new TemplateModelException("First argument (type) currently only supports: ftl");
}
}
项目:xxl-incubator
文件:HtmlTemplateUtil.java
/**
* generate static model
* @param packageName
* @return
*/
public static TemplateHashModel generateStaticModel(String packageName) {
try {
BeansWrapper wrapper = BeansWrapper.getDefaultInstance();
TemplateHashModel staticModels = wrapper.getStaticModels();
TemplateHashModel fileStatics = (TemplateHashModel) staticModels.get(packageName);
return fileStatics;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
项目:xxl-incubator
文件:MvcUtil.java
/**
* ftl中增强Java类对象 (不推荐在ftl中使用Java静态类方法,View层只处理自己职责范围内功能即可)
* @param packageName
* @return
*/
public static TemplateHashModel generateStaticModel(String packageName) {
try {
BeansWrapper wrapper = BeansWrapper.getDefaultInstance();
TemplateHashModel staticModels = wrapper.getStaticModels();
TemplateHashModel fileStatics = (TemplateHashModel) staticModels.get(packageName);
return fileStatics;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
项目:meazza
文件:FreeMarkerConfigController.java
public void addEnumModel(Class<?> clazz) throws TemplateModelException {
TemplateHashModel enumModels = beansWrapper.getEnumModels();
TemplateHashModel enums = (TemplateHashModel) enumModels.get(clazz.getName());
if (enums != null) {
freeMarkerConfigurer.getConfiguration().setSharedVariable(clazz.getSimpleName(), enums);
}
}
项目:meazza
文件:FreeMarkerConfigController.java
public void addStaticModel(Class<?> clazz) throws TemplateModelException {
TemplateHashModel staticModels = beansWrapper.getStaticModels();
TemplateHashModel statics = (TemplateHashModel) staticModels.get(clazz.getName());
if (statics != null) {
freeMarkerConfigurer.getConfiguration().setSharedVariable(clazz.getSimpleName(), statics);
}
}
项目:wechat-standard
文件:WcFrontJFinalConfig.java
@Override
protected void onConfigConstant(Constants me) {
me.setBaseViewPath("/WEB-INF/pages");
me.setDevMode(PropKit.getBoolean("devMode", false));
me.setEncoding(Const.DEFAULT_ENCODING);
me.setError404View("/WEB-INF/error/404.html");
me.setError500View("/WEB-INF/error/500.html");
// freemarker add static template
Set<String> packages = new HashSet<>();
packages.add("com.codeyn.wechat.*.enums");
packages.add("com.codeyn.wechat.utils");
packages.add("com.codeyn.wechat.jfinal.bridger");
Set<Class<?>> clazzes = PackageScanner.scanPackage(packages.toArray(new String[packages.size()]));
for (Class<?> clazz : clazzes) {
TemplateHashModel tmp = buildStaticTemplate(clazz.getName());
FreeMarkerRender.getConfiguration().setSharedVariable(clazz.getSimpleName(), tmp);
}
// TODO download
me.setFileRenderPath("/download");
// TODO upload smartUpload
me.setUploadedFileSaveDirectory("/upload");
}
项目:wechat-standard
文件:WcAdminJFinalConfig.java
@Override
protected void onConfigConstant(Constants me) {
me.setBaseViewPath("/WEB-INF/pages");
me.setDevMode(PropKit.getBoolean("devMode", false));
me.setEncoding(Const.DEFAULT_ENCODING);
me.setError404View("/WEB-INF/error/404.html");
me.setError500View("/WEB-INF/error/500.html");
// freemarker add static template
Set<String> packages = new HashSet<>();
packages.add("com.codeyn.wechat.*.enums");
packages.add("com.codeyn.wechat.utils");
packages.add("com.codeyn.wechat.jfinal.bridger");
Set<Class<?>> clazzes = PackageScanner.scanPackage(packages.toArray(new String[packages.size()]));
for (Class<?> clazz : clazzes) {
TemplateHashModel tmp = buildStaticTemplate(clazz.getName());
FreeMarkerRender.getConfiguration().setSharedVariable(clazz.getSimpleName(), tmp);
}
// TODO download
me.setFileRenderPath("/download");
// TODO upload smartUpload
me.setUploadedFileSaveDirectory("/upload");
}
项目:wechat-standard
文件:WcFrontJFinalConfig.java
@Override
protected void onConfigConstant(Constants me) {
me.setBaseViewPath("/WEB-INF/pages");
me.setDevMode(PropKit.getBoolean("devMode", false));
me.setEncoding(Const.DEFAULT_ENCODING);
me.setError404View("/WEB-INF/error/404.html");
me.setError500View("/WEB-INF/error/500.html");
// freemarker add static template
Set<String> packages = new HashSet<>();
packages.add("com.codeyn.wechat.*.enums");
packages.add("com.codeyn.wechat.utils");
packages.add("com.codeyn.wechat.jfinal.bridger");
Set<Class<?>> clazzes = PackageScanner.scanPackage(packages.toArray(new String[packages.size()]));
for (Class<?> clazz : clazzes) {
TemplateHashModel tmp = buildStaticTemplate(clazz.getName());
FreeMarkerRender.getConfiguration().setSharedVariable(clazz.getSimpleName(), tmp);
}
// TODO download
me.setFileRenderPath("/download");
// TODO upload smartUpload
me.setUploadedFileSaveDirectory("/upload");
}
项目:ocms
文件:DefaultTemplateTagEngine.java
/**
* 1)判断是否已经生成了内容<br/>
* 2)若没有生成则生成
*/
public String getTagContent(String name, Map params,
TemplateHashModel tplModel) {
StringBuffer rs = new StringBuffer();
//从缓存中获得模板标记
TemplateTag tplTag = TemplateTagCache.getTagByName(name);
//
if (tplTag != null) {
TemplateContext context = new TemplateContext();
//设置模板内容或者名称
if (tplTag.getTplType().equals(TemplateTag.TPL_TYPE_FILE)) {
context.setTplName(tplTag.getTemplatePath());
} else {
context.setTplContent(tplTag.getTemplateContent());
}
List errors = new ArrayList();
Map model = Collections.synchronizedMap(new HashMap());
model.putAll(params);
model.put("__direct_out__", "yes");
context.setModel(model);
//渲染模板输出内容
getTemplateEngine().renderTemplate(context, errors);
String content = context.getTplContent();
rs.append(content);
if (errors.size() > 0) {
for (Object o : errors) {
System.out.println("error:" + o);
}
}
}
return rs.toString();
}
项目:scipio-erp
文件:MakeAttribMapFromArgMapMethod.java
@SuppressWarnings("unchecked")
@Override
public Object exec(List args) throws TemplateModelException {
if (args == null || args.size() < 1 || args.size() > 2 ) {
throw new TemplateModelException("Invalid number of arguments (expected: 1-2)");
}
ObjectWrapper objectWrapper = CommonFtlUtil.getCurrentEnvironment().getObjectWrapper();
TemplateHashModelEx argsMap = (TemplateHashModelEx) args.get(0);
// caller-supplied excludes
TemplateModel excludesModel = (args.size() >=2) ? (TemplateModel) args.get(1) : null;
Set<String> excludes;
if (excludesModel != null) {
excludes = LangFtlUtil.getAsStringSet(excludesModel);
} else {
excludes = new HashSet<>();
}
SimpleHash res = null;
final Boolean useExclude = Boolean.FALSE;
// put attribs from explicit attribs map first, if any
TemplateModel attribsModel = argsMap.get("attribs");
if (attribsModel != null && OfbizFtlObjectType.isObjectType(OfbizFtlObjectType.MAP, attribsModel)) {
if (OfbizFtlObjectType.isObjectType(OfbizFtlObjectType.COMPLEXMAP, attribsModel)) {
attribsModel = LangFtlUtil.toSimpleMap(attribsModel, false, objectWrapper);
}
res = LangFtlUtil.copyMapToSimple((TemplateHashModel) attribsModel, excludes, useExclude, objectWrapper);
}
// to get inline attribs, add list of all arg names to excludes as well as the lists themselves
TemplateModel allArgNamesModel = argsMap.get("allArgNames");
if (allArgNamesModel != null) {
excludes.addAll(LangFtlUtil.getAsStringSet(allArgNamesModel));
}
excludes.add("allArgNames");
excludes.add("localArgNames");
// add the inline attribs over the attribs map (if any)
if (res == null) {
res = LangFtlUtil.copyMapToSimple(argsMap, excludes, useExclude, objectWrapper);
} else {
LangFtlUtil.putAll(res, argsMap, excludes, useExclude, objectWrapper);
}
return res;
}
项目:scipio-erp
文件:LangFtlUtil.java
public static SimpleHash copyMapToSimple(TemplateHashModel hashModel, Set<String> inExKeys, Boolean include, ObjectWrapper objectWrapper) throws TemplateModelException {
SimpleHash res = new SimpleHash(objectWrapper);
putAll(res, hashModel, inExKeys, include, objectWrapper);
return res;
}
项目:scipio-erp
文件:LangFtlUtil.java
public static void addToSimpleMap(SimpleHash dest, TemplateHashModel source, Set<String> keys) throws TemplateModelException {
for(String key : keys) {
dest.put(key, source.get(key));
}
}
项目:scipio-erp
文件:LangFtlUtil.java
public static void addModelsToMap(Map<String, ? super TemplateModel> dest, TemplateHashModel source, Set<String> keys) throws TemplateModelException {
for(String key : keys) {
dest.put(key, source.get(key));
}
}
项目:scipio-erp
文件:LangFtlUtil.java
/**
* Makes a simple hash from source map; only specified keys.
* <p>
* <em>WARN</em>: This is not BeanModel-aware (complex map).
*/
public static SimpleHash makeSimpleMap(TemplateHashModel map, Set<String> keys, ObjectWrapper objectWrapper) throws TemplateModelException {
SimpleHash res = new SimpleHash(objectWrapper);
addToSimpleMap(res, map, keys);
return res;
}
项目:scipio-erp
文件:LangFtlUtil.java
public static SimpleHash makeSimpleMap(TemplateHashModel map, TemplateCollectionModel keys, ObjectWrapper objectWrapper) throws TemplateModelException {
SimpleHash res = new SimpleHash(objectWrapper);
addToSimpleMap(res, map, LangFtlUtil.toStringSet(keys));
return res;
}
项目:scipio-erp
文件:LangFtlUtil.java
public static SimpleHash makeSimpleMap(TemplateHashModel map, TemplateSequenceModel keys, ObjectWrapper objectWrapper) throws TemplateModelException {
SimpleHash res = new SimpleHash(objectWrapper);
addToSimpleMap(res, map, LangFtlUtil.toStringSet(keys));
return res;
}
项目:tern
文件:FreemarkerTemplate.java
public TemplateModel get(ActionDataModel m)
{
return (TemplateHashModel)obj;
}
项目:alfresco-indexer
文件:NodeActionsWebScript.java
@Override
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)
{
// Fetching request params
Map<String, String> templateArgs = req.getServiceMatch().getTemplateVars();
String storeId = templateArgs.get("storeId");
String storeProtocol = templateArgs.get("storeProtocol");
String uuid= templateArgs.get("uuid");
// Getting the Store ID on which the changes are requested
Pair<Long, StoreRef> store = nodeDao.getStore(new StoreRef(storeProtocol, storeId));
if (store == null)
{
throw new IllegalArgumentException("Invalid store reference: " + storeProtocol + "://" + storeId);
}
Set<NodeEntity> nodes = new HashSet<NodeEntity>();
NodeEntity node= indexingService.getNodeByUuid(store, uuid);
if(node!=null){
nodes.add(node);
}
// Render them out
Map<String, Object> model = new HashMap<String, Object>(1, 1.0f);
model.put("qnameDao", qnameDao);
model.put("nsResolver", namespaceService);
model.put("nodes", nodes);
model.put("storeId", storeId);
model.put("storeProtocol", storeProtocol);
model.put("propertiesUrlPrefix", propertiesUrlPrefix);
// This allows to call the static method QName.createQName from the FTL template
try
{
BeansWrapper wrapper = BeansWrapper.getDefaultInstance();
TemplateHashModel staticModels = wrapper.getStaticModels();
TemplateHashModel qnameStatics = (TemplateHashModel) staticModels.get("org.alfresco.service.namespace.QName");
model.put("QName", qnameStatics);
}
catch (Exception e)
{
throw new AlfrescoRuntimeException(
"Cannot add BeansWrapper for static QName.createQName method to be used from a Freemarker template",
e);
}
logger.debug(String.format("Attaching %s nodes to the WebScript template", nodes.size()));
return model;
}
项目:mix-web
文件:StaticModels.java
public static TemplateHashModel getTemplateHashModel(String clazz) throws Exception {
BeansWrapper wrapper = BeansWrapper.getDefaultInstance();
TemplateHashModel staticModels = wrapper.getStaticModels();
return(TemplateHashModel) staticModels.get(clazz);
}
项目:restclient
文件:FkUtils.java
/**
* 拿到静态Class的Model
*
* @param className
* @return
* @throws TemplateModelException
*/
public static TemplateModel useClass(String className) throws TemplateModelException {
BeansWrapper wrapper = (BeansWrapper) configuration.getObjectWrapper();
TemplateHashModel staticModels = wrapper.getStaticModels();
return staticModels.get(className);
}
项目:restclient
文件:FkUtils.java
/**
* 拿到目标对象某个方法的Model
*
* @param target
* @param methodName
* @return
* @throws TemplateModelException
*/
public static TemplateModel useObjectMethod(Object target, String methodName) throws TemplateModelException {
TemplateHashModel model = (TemplateHashModel) useObjectModel(target);
return model.get(methodName);
}
项目:scipio-erp
文件:LangFtlUtil.java
/**
* Puts all values in hash into FTL globals (#global).
* <p>
* @see copyMapToSimple
*/
public static void globalsPutAll(TemplateHashModel hashModel, Set<String> inExKeys, Boolean include, Environment env) throws TemplateModelException {
varsPutAll(hashModel, inExKeys, include, new GlobalFtlVarHandler(env), env);
}
项目:scipio-erp
文件:LangFtlUtil.java
/**
* Puts all values in hash into FTL current namespace vars (#assign).
* <p>
* @see copyMapToSimple
*/
public static void varsPutAll(TemplateHashModel hashModel, Set<String> inExKeys, Boolean include, Environment env) throws TemplateModelException {
varsPutAll(hashModel, inExKeys, include, new CurrentFtlVarHandler(env), env);
}
项目:scipio-erp
文件:LangFtlUtil.java
/**
* Puts all values in hash into FTL locals (#local).
* <p>
* @see copyMapToSimple
*/
public static void localsPutAll(TemplateHashModel hashModel, Set<String> inExKeys, Boolean include, Environment env) throws TemplateModelException {
varsPutAll(hashModel, inExKeys, include, new LocalFtlVarHandler(env), env);
}
项目:ocms
文件:TemplateTagEngine.java
/**
* 获得标签的内容
*
* @param name
* 标签名
* @param params
* 宏参数
* @param tplModel
* 当前模板上下文参数
* @return
*/
public String getTagContent(String name, Map params,
TemplateHashModel tplModel);