JEECMS自定义标签开发步骤
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 |
|
步骤二:
jeecms.properties添加cms_advertising_space标签
1 |
|
步骤三:
新增一个类: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 |
|
生成代码:
1 2 3 |
|
JEECMS自定义标签开发步骤相关推荐
- javaweb学习总结(二十三)——jsp自定义标签开发入门
一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 packag ...
- 转载:javaweb学习总结(二十三)——jsp自定义标签开发入门
javaweb学习总结(二十三)--jsp自定义标签开发入门 转自:http://www.cnblogs.com/xdp-gacl/p/3916734.html 一.自定义标签的作用 自定义标签主要用 ...
- javaweb学习总结(二十三):jsp自定义标签开发入门
一.自定义标签的作用 自定义标签主要用于移除Jsp页面中的java代码. 二.自定义标签开发和使用 2.1.自定义标签开发步骤 1.编写一个实现Tag接口的Java类(标签处理器类) 1 packag ...
- javawen学习自定义标签开发
来源:https://blog.csdn.net/tom0915/article/details/79037028 一.简单标签(SimpleTag) 由于传统标签使用三个标签接口来完成不同的功能,显 ...
- JSP自定义标签开发与打包
前言:最近用到JSP的自定义标签,于是到网上寻找资料,结果发现很多的网上教程要么不全要么就是步骤流程错误,尤其是将自定义标签打jar包这一过程,按照网上的教程操作,结果被坑惨了,所以才有现在这一篇博文 ...
- JSP自定义标签开发入门
一般情况下开发jsp自定义标签需要引用以下两个包 import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; 首先我们需要大致了解开发 ...
- 【自定义标签开发】01-标签简介和开发第一个标签
自定义标签简介 自定义标签主要用于移除Jsp页面中的java代码. 要使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤: 1.编写一个实现Tag接口的java类,把页面java代码 ...
- JEECMS 自定义标签
CMS 是"Content Management System" 的缩写,意为" 内容管理系统". 内容管理系统是企业信息化建设和电子政务的新宠,也是一个相对较 ...
- java 自定义标签实现的_Java实现自定义标签的步骤——带你实现自己的标签
一.自定义标签: 使用标签的好处:使用方便.简洁.实现代码重用 二.自定义标签的形式: 1.标签属性: 2.标签体 (1)无标签体――空标签 (2)有标签体 · 普通文本 · 脚本片断 · 脚本表达式 ...
最新文章
- Spring Boot 动态数据源(多数据源自己主动切换)
- 数据结构_栈和队列的区别
- ubuntu执行编译好的文件显示文件不存在_嵌入式开发 | 什么是交叉编译(CROSS_COMPILE)...
- PHP使用PDO方式的经验总结:连接 增删改查
- 数据结构-线性表之循环队列
- 在子类中调用父类的方法super
- 初识Spring Security
- MATLAB 句柄函数记录——多变量
- RISC-V 能打 50 年!不必期待 RISC-VI —— 对话 RISC-V CTO Mark Himelstein
- win11非活动窗口如何设置 Windows11设置非活动窗口的步骤方法
- [NOI2015Day1]解题报告
- js 实现省市县三级联动
- vim个性化设置---给脚本文件加注释头信息
- 数据结构1——堆栈和队列
- linux 图形设计软件,Ubuntu下使用Blender 3D图形专业设计工具
- 入门级微单反性能对比
- 关于IE7半透明背景问题
- 算法入门篇:排序算法(一)
- 怎么生成html链接,终于认识如何创建网页超链接
- Java学习day078 Swing用户界面组件(四:选择组件)(复选框、单选钮、边框、组合框、滑动条)
热门文章
- 使用各种方法加速大型矩阵运算的效率对比
- 基于simulink的SVC与SVG的性能比较
- nginx反向代理、负载均衡以及分布式下的session保持
- windows下安装emscripten
- openCV4.2.0 error: (-5:Bad argument) CAP_IMAGES: can’t find starting number (in the name of file)
- C++中的4个类型转换关键字
- windows平台一个高性能、通用型的C++生产者/消费者架构模板
- 把Qt的界面文件(.ui文件)生成源文件(.h或.cpp)封装成链接库
- Android socket 编程 实现消息推送(一)
- java注释 param_java注释文档(下)