Java 类freemarker.template.TemplateDirectiveBody 实例源码
项目:Equella
文件:ButtonListDirective.java
@Override
@SuppressWarnings("nls")
protected TagRenderer createTagRenderer(HtmlMutableListState state, Environment env, Map<?, ?> params,
TemplateDirectiveBody body, TemplateModel[] loopVars) throws TemplateModelException
{
String tag = "div";
if( params.containsKey("tag") )
{
tag = ((SimpleScalar) params.get("tag")).getAsString();
}
boolean hideDisabledOptions = false;
if( params.containsKey("hideDisabledOptions") )
{
hideDisabledOptions = ((TemplateBooleanModel) params.get("hideDisabledOptions")).getAsBoolean();
}
return new ButtonListTagRenderer(tag, (HtmlListState) state, env, body, loopVars, hideDisabledOptions);
}
项目:Equella
文件:ButtonListDirective.java
@SuppressWarnings("nls")
public ButtonListTagRenderer(String tag, HtmlListState state, Environment env, TemplateDirectiveBody body,
TemplateModel[] loopVars, boolean hideDisabledOptions)
{
super(tag, state); //$NON-NLS-1$
this.wrapper = (BeansWrapper) env.getObjectWrapper();
this.listState = state;
this.body = body;
this.loopVars = loopVars;
this.hideDisabledOptions = hideDisabledOptions;
this.hiddenId = new AppendedElementId(state, "_hid");
ScriptVariable valVar = new ScriptVariable("val");
JSStatements changeBody = new AssignStatement(new ElementValueExpression(hiddenId), valVar);
JSHandler lsChangeHandler = state.getHandler(JSHandler.EVENT_CHANGE);
if( lsChangeHandler != null )
{
changeBody = StatementBlock.get(changeBody, lsChangeHandler);
}
clickFunc = new SimpleFunction(JSHandler.EVENT_CHANGE, state, changeBody, valVar);
}
项目:incubator-freemarker-online-tester
文件:FreeMarkerServiceTest.java
@Override
public synchronized void execute(Environment env, @SuppressWarnings("rawtypes") Map params,
TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
entered++;
notifyAll();
final long startTime = System.currentTimeMillis();
while (!released) {
// To avoid blocking the CI server forever is something goes wrong:
if (System.currentTimeMillis() - startTime > BLOCKING_TEST_TIMEOUT) {
LOG.error("JUnit test timed out");
}
try {
wait(1000);
} catch (InterruptedException e) {
LOG.error("JUnit test was interrupted");
}
}
LOG.debug("Blocker released");
}
项目:leopard
文件:MenuTemplateDirective.java
@Override
public void execute(Environment env, @SuppressWarnings("rawtypes") Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
HttpServletRequest request = RequestHolder.getRequest();
String uri = request.getRequestURI();
StringBuilder sb = new StringBuilder();
Iterator<Menu> iterator = loader.iterator();
// System.out.println("iterator:" + iterator + " url:" + request.getRequestURI());
while (iterator.hasNext()) {
Menu menu = iterator.next();
boolean active = uri.equals(menu.getUrl());
sb.append("<li");
if (active) {
sb.append(" class=\"active\"");
}
sb.append("><a href=\"");
sb.append(menu.getUrl());
sb.append("\"><span class=\"isw-grid\"></span><span class=\"text\">");
sb.append(menu.getName());
sb.append("</span></a></li>");
}
env.getOut().write(sb.toString());
}
项目:my-paper
文件:ArticleCategoryChildrenListDirective.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
Long articleCategoryId = FreemarkerUtils.getParameter(ARTICLE_CATEGORY_ID_PARAMETER_NAME, Long.class, params);
ArticleCategory articleCategory = articleCategoryService.find(articleCategoryId);
List<ArticleCategory> articleCategories;
if (articleCategoryId != null && articleCategory == null) {
articleCategories = new ArrayList<ArticleCategory>();
} else {
boolean useCache = useCache(env, params);
String cacheRegion = getCacheRegion(env, params);
Integer count = getCount(params);
if (useCache) {
articleCategories = articleCategoryService.findChildren(articleCategory, count, cacheRegion);
} else {
articleCategories = articleCategoryService.findChildren(articleCategory, count);
}
}
setLocalVariable(VARIABLE_NAME, articleCategories, env, body);
}
项目:my-paper
文件:AdPositionDirective.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
AdPosition adPosition;
Long id = getId(params);
boolean useCache = useCache(env, params);
String cacheRegion = getCacheRegion(env, params);
if (useCache) {
adPosition = adPositionService.find(id, cacheRegion);
} else {
adPosition = adPositionService.find(id);
}
if (body != null) {
setLocalVariable(VARIABLE_NAME, adPosition, env, body);
} else {
if (adPosition != null && adPosition.getTemplate() != null) {
try {
Map<String, Object> model = new HashMap<String, Object>();
model.put(VARIABLE_NAME, adPosition);
Writer out = env.getOut();
new Template("adTemplate", new StringReader(adPosition.getTemplate()), freeMarkerConfigurer.getConfiguration()).process(model, out);
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
项目:my-paper
文件:ConsultationListDirective.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
Long memberId = FreemarkerUtils.getParameter(MEMBER_ID_PARAMETER_NAME, Long.class, params);
Long productId = FreemarkerUtils.getParameter(PRODUCT_ID_PARAMETER_NAME, Long.class, params);
Member member = memberService.find(memberId);
Product product = productService.find(productId);
List<Consultation> consultations;
boolean useCache = useCache(env, params);
String cacheRegion = getCacheRegion(env, params);
Integer count = getCount(params);
List<Filter> filters = getFilters(params, Brand.class);
List<Order> orders = getOrders(params);
if ((memberId != null && member == null) || (productId != null && product == null)) {
consultations = new ArrayList<Consultation>();
} else {
if (useCache) {
consultations = consultationService.findList(member, product, true, count, filters, orders, cacheRegion);
} else {
consultations = consultationService.findList(member, product, true, count, filters, orders);
}
}
setLocalVariable(VARIABLE_NAME, consultations, env, body);
}
项目:my-paper
文件:ReviewListDirective.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
Long memberId = FreemarkerUtils.getParameter(MEMBER_ID_PARAMETER_NAME, Long.class, params);
Long productId = FreemarkerUtils.getParameter(PRODUCT_ID_PARAMETER_NAME, Long.class, params);
Type type = FreemarkerUtils.getParameter(TYPE_PARAMETER_NAME, Type.class, params);
Member member = memberService.find(memberId);
Product product = productService.find(productId);
List<Review> reviews;
if ((memberId != null && member == null) || (productId != null && product == null)) {
reviews = new ArrayList<Review>();
} else {
boolean useCache = useCache(env, params);
String cacheRegion = getCacheRegion(env, params);
Integer count = getCount(params);
List<Filter> filters = getFilters(params, Review.class);
List<Order> orders = getOrders(params);
if (useCache) {
reviews = reviewService.findList(member, product, type, true, count, filters, orders, cacheRegion);
} else {
reviews = reviewService.findList(member, product, type, true, count, filters, orders);
}
}
setLocalVariable(VARIABLE_NAME, reviews, env, body);
}
项目:my-paper
文件:ArticleListDirective.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
Long articleCategoryId = FreemarkerUtils.getParameter(ARTICLE_CATEGORY_ID_PARAMETER_NAME, Long.class, params);
Long[] tagIds = FreemarkerUtils.getParameter(TAG_IDS_PARAMETER_NAME, Long[].class, params);
ArticleCategory articleCategory = articleCategoryService.find(articleCategoryId);
List<Tag> tags = tagService.findList(tagIds);
List<Article> articles;
if ((articleCategoryId != null && articleCategory == null) || (tagIds != null && tags.isEmpty())) {
articles = new ArrayList<Article>();
} else {
boolean useCache = useCache(env, params);
String cacheRegion = getCacheRegion(env, params);
Integer count = getCount(params);
List<Filter> filters = getFilters(params, Article.class);
List<Order> orders = getOrders(params);
if (useCache) {
articles = articleService.findList(articleCategory, tags, count, filters, orders, cacheRegion);
} else {
articles = articleService.findList(articleCategory, tags, count, filters, orders);
}
}
setLocalVariable(VARIABLE_NAME, articles, env, body);
}
项目:my-paper
文件:ProductCategoryChildrenListDirective.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
Long productCategoryId = FreemarkerUtils.getParameter(PRODUCT_CATEGORY_ID_PARAMETER_NAME, Long.class, params);
ProductCategory productCategory = productCategoryService.find(productCategoryId);
List<ProductCategory> productCategories;
if (productCategoryId != null && productCategory == null) {
productCategories = new ArrayList<ProductCategory>();
} else {
boolean useCache = useCache(env, params);
String cacheRegion = getCacheRegion(env, params);
Integer count = getCount(params);
if (useCache) {
productCategories = productCategoryService.findChildren(productCategory, count, cacheRegion);
} else {
productCategories = productCategoryService.findChildren(productCategory, count);
}
}
setLocalVariable(VARIABLE_NAME, productCategories, env, body);
}
项目:my-paper
文件:ProductCategoryParentListDirective.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
Long productCategoryId = FreemarkerUtils.getParameter(PRODUCT_CATEGORY_ID_PARAMETER_NAME, Long.class, params);
ProductCategory productCategory = productCategoryService.find(productCategoryId);
List<ProductCategory> productCategories;
if (productCategoryId != null && productCategory == null) {
productCategories = new ArrayList<ProductCategory>();
} else {
boolean useCache = useCache(env, params);
String cacheRegion = getCacheRegion(env, params);
Integer count = getCount(params);
if (useCache) {
productCategories = productCategoryService.findParents(productCategory, count, cacheRegion);
} else {
productCategories = productCategoryService.findParents(productCategory, count);
}
}
setLocalVariable(VARIABLE_NAME, productCategories, env, body);
}
项目:my-paper
文件:PromotionListDirective.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
Boolean hasBegun = FreemarkerUtils.getParameter(HAS_BEGUN_PARAMETER_NAME, Boolean.class, params);
Boolean hasEnded = FreemarkerUtils.getParameter(HAS_ENDED_PARAMETER_NAME, Boolean.class, params);
List<Promotion> promotions;
boolean useCache = useCache(env, params);
String cacheRegion = getCacheRegion(env, params);
Integer count = getCount(params);
List<Filter> filters = getFilters(params, Promotion.class);
List<Order> orders = getOrders(params);
if (useCache) {
promotions = promotionService.findList(hasBegun, hasEnded, count, filters, orders, cacheRegion);
} else {
promotions = promotionService.findList(hasBegun, hasEnded, count, filters, orders);
}
setLocalVariable(VARIABLE_NAME, promotions, env, body);
}
项目:my-paper
文件:ArticleCategoryParentListDirective.java
@SuppressWarnings({ "unchecked", "rawtypes" })
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
Long articleCategoryId = FreemarkerUtils.getParameter(ARTICLE_CATEGORY_ID_PARAMETER_NAME, Long.class, params);
ArticleCategory articleCategory = articleCategoryService.find(articleCategoryId);
List<ArticleCategory> articleCategories;
if (articleCategoryId != null && articleCategory == null) {
articleCategories = new ArrayList<ArticleCategory>();
} else {
boolean useCache = useCache(env, params);
String cacheRegion = getCacheRegion(env, params);
Integer count = getCount(params);
if (useCache) {
articleCategories = articleCategoryService.findParents(articleCategory, count, cacheRegion);
} else {
articleCategories = articleCategoryService.findParents(articleCategory, count);
}
}
setLocalVariable(VARIABLE_NAME, articleCategories, env, body);
}
项目:tc
文件:GuestTag.java
@Override
public void render(Environment env, Map params, TemplateDirectiveBody body) throws IOException, TemplateException {
if (getSubject() == null || getSubject().getPrincipal() == null) {
if (log.isDebugEnabled()) {
log.debug("Subject does not exist or does not have a known identity (aka 'principal'). "
+ "Tag body will be evaluated.");
}
renderBody(env, body);
} else {
if (log.isDebugEnabled()) {
log.debug("Subject exists or has a known identity (aka 'principal'). "
+ "Tag body will not be evaluated.");
}
}
}
项目:geeCommerce-Java-Shop-Software-and-PIM
文件:FetchRetailStoresDirective.java
@SuppressWarnings("rawtypes")
@Override
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
throws TemplateException, IOException {
SimpleScalar pVar = (SimpleScalar) params.get("var");
List<RetailStore> retailStoreList = retailStores.enabledRetailStores();
if (pVar != null) {
// Sets the result into the current template as if using <#assign
// name=model>.
env.setVariable(pVar.getAsString(), DefaultObjectWrapper.getDefaultInstance().wrap(retailStoreList));
} else {
// Sets the result into the current template as if using <#assign
// name=model>.
env.setVariable("retailStores", DefaultObjectWrapper.getDefaultInstance().wrap(retailStoreList));
}
}
项目:geeCommerce-Java-Shop-Software-and-PIM
文件:WaitDirective.java
@SuppressWarnings("rawtypes")
@Override
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
throws TemplateException, IOException {
try {
SimpleNumber pFor = (SimpleNumber) params.get("for");
Number forMillis = null;
if (pFor != null) {
forMillis = pFor.getAsNumber();
try {
Thread.sleep(forMillis.longValue());
} catch (InterruptedException e) {
e.printStackTrace();
}
}
} catch (Throwable t) {
t.printStackTrace();
}
}
项目:tern
文件:Overrides.java
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException
{
String name = Directives.getStringParam(env, params, "name");
name = BLOCK_NAME_PRE+name;
Namespace ns = env.getCurrentNamespace();
if(ns.get(name) == null) /*block���ܶ�α���д�����ж�����ģ���е�����Ϊ����*/
{
//java.io.Writer out = new java.io.StringWriter();
//body.render(out);
env.getCurrentNamespace().put(name, body);
//env.getCurrentNamespace().put(name, out.toString());
//env.setLocalVariable(name, out.toString());
}
}
项目:kc-rice
文件:JsonStringEscapeDirective.java
@Override
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
// Check if no parameters were given:
if (!params.isEmpty()) {
throw new TemplateModelException(
getClass().getSimpleName() + " doesn't allow parameters.");
}
if (loopVars.length != 0) {
throw new TemplateModelException(
getClass().getSimpleName() + " doesn't allow loop variables.");
}
// If there is non-empty nested content:
if (body != null) {
// Executes the nested body. Same as <#nested> in FTL, except
// that we use our own writer instead of the current output writer.
body.render(new JsonEscapingFilterWriter(env.getOut()));
} else {
throw new RuntimeException("missing body");
}
}
项目:ipaas
文件:HeadDirective.java
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
throws TemplateException, IOException {
String tagBeginHtml = tagBegin(params);
if (loopVars.length > 1) {
// todo
throw new TemplateModelException("At most one loop variable is allowed.");
}
// ---------------------------------------------------------------------
// 真正开始处理输出内容
Writer out = env.getOut();
if (body != null) {
out.write(tagBeginHtml);
StringWriter sOut = new StringWriter();
// 执行标签内容(same as <#nested> in FTL).
body.render(sOut);
out.write(sOut.getBuffer().toString());
out.write(FisResource.getCssHook());
out.write("\n</head>\n");
}
}
项目:ipaas
文件:RequireDirective.java
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
throws TemplateException, IOException {
String name = null;
TemplateModel paramValue = (TemplateModel) params.get("name");
if (paramValue != null) {
name = ((TemplateScalarModel) paramValue).getAsString();
}
if (name == null || "".equals(name)) {
return;
}
try {
String url = fisRes.require(name);
} catch (FisException e) {
throw new TemplateException(e.getMessage(), e, env);
}
}
项目:ipaas
文件:BodyDirective.java
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
throws TemplateException, IOException {
String tagBeginHtml = tagBegin(params);
Writer out = env.getOut();
if (body != null) {
out.write(tagBeginHtml);
StringWriter sOut = new StringWriter();
body.render(sOut);
out.write(sOut.getBuffer().toString());
out.write("\n</body>\n");
try {
out.write(fisRes.getRenderFrag("js"));
} catch (FisException e) {
throw new TemplateException(e.getMessage(), e, env);
}
out.write(fisRes.getRenderScript());
}
}
项目:aspectran
文件:AbstractTrimDirectiveModel.java
@SuppressWarnings("rawtypes")
@Override
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
throws TemplateException, IOException {
if (body == null) {
return;
}
if (loopVars.length != 0) {
throw new TemplateModelException("Trim directive doesn't allow loop variables");
}
StringWriter bodyWriter = new StringWriter();
body.render(bodyWriter);
String trimmed = getTrimmer(params).trim(bodyWriter.toString());
Writer out = env.getOut();
out.write(trimmed);
}
项目:org.code.quickGeneratingForSSM
文件:LowerFirstCharacter.java
@Override
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
//û�в�����ѭ��
if (!params.isEmpty()) {
throw new TemplateModelException(
"This directive doesn't allow parameters." );
}
if(loopVars.length != 0 ) {
throw new TemplateModelException(
"This directive doesn't allow loop variables." );
}
if(body != null ){
body.render(new UpperCaseFilterWriter(env.getOut()));
}else{
throw new RuntimeException( "missing body" );
}
}
项目:onetwo
文件:AbstractDirective.java
protected String getBodyContent(TemplateDirectiveBody body){
StringWriter sw = null;
String bodyContent = "";
try {
// body.render(env.getOut());
if(body!=null){
sw = new StringWriter();
body.render(sw);
bodyContent = sw.toString();
}
} catch (Exception e) {
LangUtils.throwBaseException("render error : " + e.getMessage(), e);
// e.printStackTrace();
} finally{
LangUtils.closeIO(sw);
}
return bodyContent;
}
项目:jeecms6
文件:CmsFriendlinkListDirective.java
@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
Integer siteId = getSiteId(params);
if (siteId == null) {
siteId = FrontUtils.getSite(env).getId();
}
Integer ctgId = getCtgId(params);
Boolean enabled = getEnabled(params);
if (enabled == null) {
enabled = true;
}
List<CmsFriendlink> list = cmsFriendlinkMng.getList(siteId, ctgId,
enabled);
Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(
params);
paramWrap.put(OUT_LIST, DEFAULT_WRAPPER.wrap(list));
Map<String, TemplateModel> origMap = DirectiveUtils
.addParamsToVariable(env, paramWrap);
body.render(env.getOut());
DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);
}
项目:jeecms6
文件:CmsVoteListDirective.java
@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
Integer count = getCount(params);
if (count == null) {
count=Integer.MAX_VALUE;
}
Boolean def=getDef(params);
List<CmsVoteTopic>voteTopicList=cmsVoteTopicMng.getList(def,getSiteId(params), count);
Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(
params);
paramWrap.put(OUT_LIST, DEFAULT_WRAPPER.wrap(voteTopicList));
Map<String, TemplateModel> origMap = DirectiveUtils
.addParamsToVariable(env, paramWrap);
body.render(env.getOut());
DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);
}
项目:jeecms6
文件:CmsAdvertisingDirective.java
@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
Integer id = DirectiveUtils.getInt(PARAM_ID, params);
CmsAdvertising ad = null;
if (id != null) {
ad = cmsAdvertisingMng.findById(id);
}
Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(
params);
paramWrap.put(OUT_BEAN, DEFAULT_WRAPPER.wrap(ad));
Map<String, TemplateModel> origMap = DirectiveUtils
.addParamsToVariable(env, paramWrap);
body.render(env.getOut());
DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);
}
项目:jeecms6
文件:CmsFriendlinkCtgListDirective.java
@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
Integer siteId = getSiteId(params);
if (siteId == null) {
siteId = FrontUtils.getSite(env).getId();
}
List<CmsFriendlinkCtg> list = cmsFriendlinkCtgMng.getList(siteId);
Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(
params);
paramWrap.put(OUT_LIST, DEFAULT_WRAPPER.wrap(list));
Map<String, TemplateModel> origMap = DirectiveUtils
.addParamsToVariable(env, paramWrap);
body.render(env.getOut());
DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);
}
项目:jeecms6
文件:CmsVoteDirective.java
@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
CmsSite site = FrontUtils.getSite(env);
CmsVoteTopic vote;
Integer id = getId(params);
if (id != null) {
vote = cmsVoteTopicMng.findById(id);
} else {
Integer siteId = getSiteId(params);
if (siteId == null) {
siteId = site.getId();
}
vote = cmsVoteTopicMng.getDefTopic(siteId);
}
Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(
params);
paramWrap.put(OUT_BEAN, DEFAULT_WRAPPER.wrap(vote));
Map<String, TemplateModel> origMap = DirectiveUtils
.addParamsToVariable(env, paramWrap);
body.render(env.getOut());
DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);
}
项目:jeecms6
文件:CmsModelDirective.java
@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
Integer id = DirectiveUtils.getInt(PARAM_ID, params);
CmsModel model;
if (id != null) {
model = modelMng.findById(id);
} else {
String path = DirectiveUtils.getString(PARAM_PATH, params);
if (StringUtils.isBlank(path)) {
// 如果path不存在,那么id必须存在。
throw new ParamsRequiredException(PARAM_ID);
}
model = modelMng.findByPath(path);
}
Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(
params);
paramWrap.put(OUT_BEAN, DEFAULT_WRAPPER.wrap(model));
Map<String, TemplateModel> origMap = DirectiveUtils
.addParamsToVariable(env, paramWrap);
body.render(env.getOut());
DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);
}
项目:jeecms6
文件:ContentDirective.java
@SuppressWarnings("unchecked")
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
Integer id = getId(params);
Boolean next = DirectiveUtils.getBool(PRAMA_NEXT, params);
Content content;
if (next == null) {
content = contentMng.findById(id);
} else {
CmsSite site = FrontUtils.getSite(env);
Integer channelId = DirectiveUtils.getInt(PARAM_CHANNEL_ID, params);
content = contentMng.getSide(id, site.getId(), channelId, next);
}
Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(
params);
paramWrap.put(OUT_BEAN, DEFAULT_WRAPPER.wrap(content));
Map<String, TemplateModel> origMap = DirectiveUtils
.addParamsToVariable(env, paramWrap);
body.render(env.getOut());
DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);
}
项目:fw
文件:SuperDirective.java
@SuppressWarnings("rawtypes")
public void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body)
throws TemplateException, IOException {
OverrideDirective.TemplateDirectiveBodyOverrideWraper current = (OverrideDirective.TemplateDirectiveBodyOverrideWraper) env
.getVariable(DirectiveUtils.OVERRIDE_CURRENT_NODE);
if (current == null) {
throw new TemplateException("<@super/> direction must be child of override", env);
}
TemplateDirectiveBody parent = current.parentBody;
if (parent == null) {
throw new TemplateException("not found parent for <@super/>", env);
}
parent.render(env.getOut());
}
项目:goja
文件:AuthenticatedTag.java
@Override
public void render(Environment env, Map params, TemplateDirectiveBody body)
throws IOException, TemplateException {
if (getSubject() != null && getSubject().isAuthenticated()) {
if (_logger.isDebugEnabled()) {
_logger.debug("Subject exists and is authenticated. Tag body will be evaluated.");
}
renderBody(env, body);
} else {
if (_logger.isDebugEnabled()) {
_logger.debug("Subject does not exist or is not authenticated. Tag body will not be evaluated.");
}
}
}
项目:goja
文件:BlockDirective.java
@SuppressWarnings("rawtypes")
@Override
public void execute(Environment env,
Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
String name = DirectiveKit.getRequiredParam(params, "name");
TemplateDirectiveBodyOverrideWraper overrideBody = DirectiveKit.getOverrideBody(env, name);
if (overrideBody == null) {
if (body != null) {
body.render(env.getOut());
}
} else {
DirectiveKit.setTopBodyForParentBody(
new TemplateDirectiveBodyOverrideWraper(body, env),
overrideBody);
overrideBody.render(env.getOut());
}
}
项目:goja
文件:SuperDirective.java
@SuppressWarnings("rawtypes")
@Override
public void execute(Environment env,
Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
TemplateDirectiveBodyOverrideWraper current =
(TemplateDirectiveBodyOverrideWraper) env.getVariable(DirectiveKit.OVERRIDE_CURRENT_NODE);
if (current == null) {
throw new TemplateException("<@super/> direction must be child of override", env);
}
TemplateDirectiveBody parent = current.parentBody;
if (parent == null) {
throw new TemplateException("not found parent for <@super/>", env);
}
parent.render(env.getOut());
}
项目:goja
文件:ExtendsDirective.java
@SuppressWarnings("rawtypes")
@Override
public void execute(Environment env, Map params,
TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException {
String name = DirectiveKit.getRequiredParam(params, "name");
params.remove("name");
if (!name.endsWith(".ftl")) {
name = name + ".ftl";
}
String encoding = DirectiveKit.getParam(params, "encoding", StringPool.UTF_8);
String includeTemplateName = TemplateCache.getFullTemplatePath(env, getTemplatePath(env), name);
Configuration configuration = env.getConfiguration();
final Template template = configuration.getTemplate(includeTemplateName, env.getLocale(), encoding, true);
for (Object key : params.keySet()) {
TemplateModel paramModule = new SimpleScalar(params.get(key).toString());
env.setVariable(key.toString(), paramModule);
}
env.include(template);
}
项目:funsteroid
文件:ViewletInvoker.java
@Override
public void execute(Environment env, Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body) throws TemplateException, IOException {
try{
Map<String,Object> paramsViewlet=MacroHelper.extractParams(params);
if (body!=null){
ByteArrayOutputStream baos=MacroHelper.renderInnerTag(body);
paramsViewlet.put("renderedBody", new String(baos.toByteArray()).trim());
}
ModeletAndView mv=viewlet.control(paramsViewlet);
if (mv!=null){
StringModel templateModel = (StringModel) env.getDataModel().get(FreemarkerViewRenderer.ROOT_MODEL);
if (templateModel!=null){
Map map = ((MapWrapper)templateModel.getWrappedObject()).get();
paramsViewlet.putAll(map);
}
paramsViewlet.putAll(mv.getModel());
freemarkerTemplateRenderer.render(mv.getTemplate(), paramsViewlet, env.getOut());
}
}catch(RuntimeException e){
logger.error("Exception executing "+viewlet.getClass()+". Error "+e.getMessage());
e.printStackTrace();
}
}
项目:private-freemarker
文件:UpperDirective.java
@SuppressWarnings("rawtypes")
public void execute(Environment env,
Map params, TemplateModel[] loopVars,
TemplateDirectiveBody body)
throws TemplateException, IOException {
System.out.println("upper start");
// Check if no parameters were given:
if (!params.isEmpty()) {
throw new TemplateModelException(
"This directive doesn't allow parameters.");
}
if (loopVars.length != 0) {
throw new TemplateModelException(
"This directive doesn't allow loop variables.");
}
// If there is non-empty nested content:
if (body != null) {
// Executes the nested body. Same as <#nested> in FTL, except
// that we use our own writer instead of the current output writer.
body.render(new UpperCaseFilterWriter(env.getOut()));
} else {
throw new RuntimeException("missing body");
}
System.out.println("upper end");
}
项目:Equella
文件:ListRendererDirective.java
public FreemarkerListRenderer(HtmlMutableListState state, Environment env, TemplateDirectiveBody body,
TemplateModel[] loopVars)
{
super("ul", state); //$NON-NLS-1$
this.wrapper = (BeansWrapper) env.getObjectWrapper();
this.listState = state;
this.body = body;
this.loopVars = loopVars;
}
项目:Equella
文件:BooleanListDirective.java
public FreemarkerCheckListRenderer(BooleanListRenderer renderer, Environment env, TemplateDirectiveBody body,
TemplateModel[] loopVars)
{
super("ul", renderer.getListState()); //$NON-NLS-1$
this.wrapper = (BeansWrapper) env.getObjectWrapper();
this.body = body;
this.loopVars = loopVars;
this.renderer = renderer;
}