JEECMS自带的只有[@cms_advertising]标签,并且官方没有给文档,用法:

[@cms_advertising id='3'] 
            <img src="${(tag_bean.attr.image_url)!?html}" width="${(tag_bean.attr.image_width)!?html}" height="${(tag_bean.attr.image_height)!?html}" /> 
 [/@cms_advertising]

这个是根据广告ID的来调用单独的一条广告,首页幻灯片一般都有多张,不能满足需求。

其实jeecms也有另一个js调用已经实现了的,但是不能生成到html中,用户体验不好。(com.jeecms.cms.action.front.AdvertisingAct类,<script src="/ad.jspx"  ……)

回到正题,自己增加一个标签,名字叫做:cms_advertising_space

步骤一:

jeecms-context.xml中增加一个bean:

1

2

<!-- 新增按照广告牌取所有广告标签 -->

<bean id="cms_advertising_space" class="com.jeecms.cms.action.directive.CmsAdvertisingSpaceDirective"/>

步骤二:

jeecms.properties添加cms_advertising_space标签

1

directive.cms_advertising_space=cms_advertising_space

  

步骤三:

新增一个类:CmsAdvertisingSpaceDirective

package com.jeecms.cms.action.directive;import static com.jeecms.common.web.freemarker.DirectiveUtils.OUT_BEAN;
import static freemarker.template.ObjectWrapper.DEFAULT_WRAPPER;import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.springframework.beans.factory.annotation.Autowired;
import static com.jeecms.common.web.freemarker.DirectiveUtils.OUT_LIST;
import com.jeecms.cms.entity.assist.CmsAdvertising;
import com.jeecms.cms.entity.assist.CmsAdvertisingSpace;
import com.jeecms.cms.manager.assist.CmsAdvertisingMng;
import com.jeecms.cms.manager.assist.CmsAdvertisingSpaceMng;
import com.jeecms.common.web.freemarker.DirectiveUtils;import freemarker.core.Environment;
import freemarker.template.TemplateDirectiveBody;
import freemarker.template.TemplateDirectiveModel;
import freemarker.template.TemplateException;
import freemarker.template.TemplateModel;/*** 广告对象标签*/
public class CmsAdvertisingSpaceDirective implements TemplateDirectiveModel {/*** 输入参数,广告ID。*/public static final String PARAM_ID = "id";@SuppressWarnings("unchecked")public void execute(Environment env, Map params, TemplateModel[] loopVars,TemplateDirectiveBody body) throws TemplateException, IOException {Integer id = DirectiveUtils.getInt(PARAM_ID, params);List<CmsAdvertising> ads = null;CmsAdvertisingSpace adspace;if (id != null) {//ad = cmsAdvertisingMng.findById(id);ads= cmsAdvertisingMng.getList(id, true);}Map<String, TemplateModel> paramWrap = new HashMap<String, TemplateModel>(params);if (ads!=null){paramWrap.put(OUT_LIST, DEFAULT_WRAPPER.wrap(ads));}Map<String, TemplateModel> origMap = DirectiveUtils.addParamsToVariable(env, paramWrap);body.render(env.getOut());DirectiveUtils.removeParamsFromVariable(env, paramWrap, origMap);}@Autowiredprivate CmsAdvertisingMng cmsAdvertisingMng;@Autowiredprivate CmsAdvertisingSpaceMng cmsAdvertisingSpaceMng;
}

标签写法:

1

2

3

4

5

6

[@cms_advertising_space id='7']

[#list tag_list as c]

<img src="${(c.attr.image_url)!?html}" width="${(c.attr.image_width)!?html}" height="${(c.attr.image_height)!?html}" />

[/#list]   

 [/@cms_advertising_space]

  生成代码:

1

2

3

<img src="http://127.0.0.1:8080/r/cms/kingyon_zh/uploads/7-140611092P2415.jpg" width="" height="" />

<img src="http://127.0.0.1:8080/r/cms/kingyon_zh/uploads/3-140611092P2415.jpg" width="" height="" />

JEECMS自定义标签开发步骤相关推荐

  1. javaweb学习总结(二十三)——jsp自定义标签开发入门

    一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 packag ...

  2. 转载:javaweb学习总结(二十三)——jsp自定义标签开发入门

    javaweb学习总结(二十三)--jsp自定义标签开发入门 转自:http://www.cnblogs.com/xdp-gacl/p/3916734.html 一.自定义标签的作用 自定义标签主要用 ...

  3. javaweb学习总结(二十三):jsp自定义标签开发入门

    一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 packag ...

  4. javawen学习自定义标签开发

    来源:https://blog.csdn.net/tom0915/article/details/79037028 一.简单标签(SimpleTag) 由于传统标签使用三个标签接口来完成不同的功能,显 ...

  5. JSP自定义标签开发与打包

    前言:最近用到JSP的自定义标签,于是到网上寻找资料,结果发现很多的网上教程要么不全要么就是步骤流程错误,尤其是将自定义标签打jar包这一过程,按照网上的教程操作,结果被坑惨了,所以才有现在这一篇博文 ...

  6. JSP自定义标签开发入门

    一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...

  7. 【自定义标签开发】01-标签简介和开发第一个标签

    自定义标签简介 自定义标签主要用于移除Jsp页面中的java代码. 要使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 1.编写一个实现Tag接口的java类,把页面java代码 ...

  8. JEECMS 自定义标签

    CMS 是"Content Management System" 的缩写,意为" 内容管理系统". 内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较 ...

  9. java 自定义标签实现的_Java实现自定义标签的步骤——带你实现自己的标签

    一.自定义标签: 使用标签的好处:使用方便.简洁.实现代码重用 二.自定义标签的形式: 1.标签属性: 2.标签体 (1)无标签体――空标签 (2)有标签体 · 普通文本 · 脚本片断 · 脚本表达式 ...

最新文章

  1. Spring Boot 动态数据源(多数据源自己主动切换)
  2. 数据结构_栈和队列的区别
  3. ubuntu执行编译好的文件显示文件不存在_嵌入式开发 | 什么是交叉编译(CROSS_COMPILE)...
  4. PHP使用PDO方式的经验总结:连接 增删改查
  5. 数据结构-线性表之循环队列
  6. 在子类中调用父类的方法super
  7. 初识Spring Security
  8. MATLAB 句柄函数记录——多变量
  9. RISC-V 能打 50 年!不必期待 RISC-VI —— 对话 RISC-V CTO Mark Himelstein
  10. win11非活动窗口如何设置 Windows11设置非活动窗口的步骤方法
  11. [NOI2015Day1]解题报告
  12. js 实现省市县三级联动
  13. vim个性化设置---给脚本文件加注释头信息
  14. 数据结构1——堆栈和队列
  15. linux 图形设计软件,Ubuntu下使用Blender 3D图形专业设计工具
  16. 入门级微单反性能对比
  17. 关于IE7半透明背景问题
  18. 算法入门篇:排序算法(一)
  19. 怎么生成html链接,终于认识如何创建网页超链接
  20. Java学习day078 Swing用户界面组件(四:选择组件)(复选框、单选钮、边框、组合框、滑动条)

热门文章

  1. 使用各种方法加速大型矩阵运算的效率对比
  2. 基于simulink的SVC与SVG的性能比较
  3. nginx反向代理、负载均衡以及分布式下的session保持
  4. windows下安装emscripten
  5. openCV4.2.0 error: (-5:Bad argument) CAP_IMAGES: can’t find starting number (in the name of file)
  6. C++中的4个类型转换关键字
  7. windows平台一个高性能、通用型的C++生产者/消费者架构模板
  8. 把Qt的界面文件(.ui文件)生成源文件(.h或.cpp)封装成链接库
  9. Android socket 编程 实现消息推送(一)
  10. java注释 param_java注释文档(下)