首先创建一个jeecms的框架demo,登录jeecms框架的后台,地址是:http://localhost:8686/demojeecms/jeeadmin/jeecms/index.do;其中的demojeecms指的是建立的项目的名字。
这是点击安装完之后的效果。可以进行卸载和修改。
下面来具体讲解一下该如何进行插件开发:
一、写java功能代码
这里的java功能代码,是指你的插件要实现的功能。java代码的编写不能脱离开jeecms框架,就是说,即使不是使用插件,代码也可以在jeecms框架中能够实现所需要的功能。
二、配置
所有的配置文件都必须这个路径下:/WEB-INF/config/plug/文件夹。该目录下的配置文件会自动加载。例如我的文件夹名称为name,那么我的配置路径为config/plug/name;
(1)插件配置说明:
配置文件有四个:
xxx.properties
xxx-context.xml
xxx-servlet-admin-action.xml
xxx-servlet-front-action.xml
其中, xxx.properties:标签、功能菜单、权限、国际化、Hbm映射路径配置
xxx-context.xml:dao、manager、标签的配置
xxx-servlet-admin-action.xml:后台action的配置
xxx-servlet-front-action.xml:前台action的配置
(2)entity开发简介
建立hibernate映射文件和实体类(实例com.jeecms.xxx.entity.hbm)配置插件的实体映射文件路径(xxx.propertities增加一下配置)
hibernate.hbm.xxx.entity=classpath*:/com/jeecms/xxx/entity/hbm/*.hbm.xml说明hibernate.hbm为固定格式,xxx.entity这个key只要不和其它插件重名即可
(3)dao开发配置
源码开发部分可参考源码部分,配置dao的bean test-context.xml增加如下配置<bean id="cmsXxxDao" class="com.jeecms.xxx.daol.inpl.CmsXxxDaoImpl"/>
(4)manager开发配置
源码开发部分可参考源码部分,配置manager的bean test-context.xml增加如下配置<bean id="cmsXxxMng" class="com.jeecms.xxx.manager.implCmsXxxMngImpl"/>
(5)action开发配置
源码开发部分可参考源码部分,配置action的bean xxx-servlet-admin-action.xml增加如下配置<bean id="xxxAdminAct" class="com.jeecms.xxx.aciton.admin.CmsXxxAct"/>
(6)标签开发配置
源码开发部分可参考源码部分,配置directive的bean xxx-context.xml增加如下配置<bean id="test_list" class="com.jeecms.xxx.action.directive.CmsXxxListDirective"/>
xxx.properties增加标签配置directive.test_list=test_list上述配置说明directive.固定格式,test_list为标签名,test_list为在xxx-context.xml配置文件中配置的标签的id名
(7)国际化配置
xxx.properties增加国际化文件夹配置messages.front.xxx=/WEB-INF/languages/plug/xxx/front/messages
messages.front.xxx.tpl=/WEB-INF/languages/plug/xxx/tpl/messages
messages.admin.xxx=/WEB-INF/languages/plug/xxx/admin/messages
/WEB-INF/languages /plug/test/admin:后台国际化文件夹
/WEB-INF/languages /plug/test/front:前台国际化文件夹
/WEB-INF/languages /plug/test/tpl:模板国际化文件夹
分别在如上文件夹增加国际化配置文件,例如 messages_zh_CN.properties 文件配置后台国际化cms.test.title=标题,其他的类似
(8)权限菜单配置
xxx.properties增加配置plug.menu.30= cms.xxx.function;test/v_list.do;test:v_list
二级菜单配置plug.perms.30=global.add@test:v_add;global.edit@test:v_edit;global.save@test:o_save;global.u pdate@test:o_update
配置说明:plug.menu.为新增菜单的固定格式
30 为插件的 id(可以为任意的整形数字,例如 60、600 等,值越小在扩展菜单下的菜单排 序靠前)
cms.test.function 为插件菜单名的国际化配置
test/v_list.do 为插件菜单链接地址
test:v_list 为插件菜单权限
plug.perms.为固定格式,
30 和上面的一级菜单的 id 一致
global.add@test:v_add;子菜单权限配置, global.add 为菜单名国际化配置 test:v_add 为子菜单 的权限
三、其它的和插件开发相关的文件目录:
/WEB-INF/languages/plug/test/admin:后台国际化文件夹
/WEB-INF/languages/plug/test/front:前台国际化文件夹
/WEB-INF/languages/plug/test/tpl:模板国际化文件夹
/WEB-INF/jeecms_sys/:后台页面文件夹位置(可自行新建子文件夹)
/WEB-INF/t/cms/www/default/:前台模板文件夹
插件源代码包名:com.xxxx.test
四、将所有的java功能代码、配置文件、页面文件写好之后,按照原来的文件结构统一放在WEB-INF文件夹下面,然后打包成zip格式,上传安装就好了。上传安装完了之后,最主要的一点就是要重启服务器,否则插件功能不会显示。
示例:cjdemo
- JavaScript学习笔记(四)——jQuery插件开发与发布
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
- jira的插件开发流程实践
怎么开头呢,由于自己比较懒,博客一直不怎么弄,以后克己一点,多传点自己遇到的问题和经历上来,供自己以后记忆,也供需要的小伙伴少走点弯路吧 最近公司项目需要竞标一个运维项目,甲方给予了既定的几种比较常用 ...
- Vue插件开发入门
相对组件来说,Vue 的插件开发受到的关注要少一点.但是插件的功能是十分强大的,能够完成许多 Vue 框架本身不具备的功能. 大家一般习惯直接调用现成的插件,比如官方推荐的 vue-router.vu ...
- 【原创】记一次Project插件开发
一.开发背景 最近在使用微软的Office Project 2010 进行项目管理,看到排的满满的计划任务,一个个地被执行完毕,还是很有成就感的.其实,不光是在工作中可以使用Project进行项目进度 ...
- JavaScript学习总结(四)——jQuery插件开发与发布
jQuery插件就是以jQuery库为基础衍生出来的库,jQuery插件的好处是封装功能,提高了代码的复用性,加快了开发速度,现在网络上开源的jQuery插件非常多,随着版本的不停迭代越来越稳定好用, ...
- [Tool] Open Live Writer插件开发
一 前言 Windows Live Writer(简称 WLW)开源之后变成 Open Live Writer(简称 OLW),原先 WLW 的插件在 OLW 下都不能用了,原因很简单,WLW 插件开 ...
- VS插件开发 - 登录身份验证
[附加] 很多朋友问那个VS背景怎么弄的,我刚刚已经抽时间把制作步骤发出来了: 请参见<VS插件开发 - 个性化VS IDE编辑器,瞬间 高 大 上>. 最近一直在忙着一些事情,一直没有发 ...
- jQuery插件开发精品教程,让你的jQuery提升一个台阶
要说jQuery 最成功的地方,我认为是它的可扩展性吸引了众多开发者为其开发插件,从而建立起了一个生态系统.这好比大公司们争相做平台一样,得平台者得天下.苹果,微软,谷歌等巨头,都有各自的平台及生态圈 ...
- 开源遥感平台opticks插件开发指南
Opticks是一款开源的遥感数据处理平台,与其同类开源软件OSSIM一样,支持种类丰富的数据文件格式,但其最大特点为设计精巧的插件开发模式,在设计技巧上,系统提供了良好的封装特性,即使插件开发者对框 ...
- POJ 1066 Treasure Hunt --几何,线段相交
题意: 正方形的房子,给一些墙,墙在区域内是封闭的,给你人的坐标,每穿过一道墙需要一把钥匙,问走出正方形需要多少把钥匙. 解法: 因为墙是封闭的,所以绕路也不会减少通过的墙的个数,还不如不绕路走直线, ...
- Android Studio系列教程一--下载和安装
原文链接:http://stormzhang.com/devtools/2014/11/25/android-studio-tutorial1/ 背景 相信大家对Android Studio已经不陌生 ...
- Maven 小结
Maven 的各项功能通过插件实现,有需要的时候学习那些插件的配置即可 一般一个大型项目会有 A:父管理工程,定义了所有的依赖和插件 B:工具工程 C:web 项目的父工程,同时也是一个聚合工程 D: ...
- 10Spring_AOP编程(传统编程)
注意我写这篇文章的思路,要想做切面编程,包含两个部分,通知和切点,通知是你要做哪些增强,切点是指你要拦截哪些方法.先介绍通知的定义再去介绍切点的定义.这篇文章我取名叫做Spring_AOP编程(传统编 ...
- jqXHR 对象(post完成后再调用函数)
场景: function A() { B(); C(); } function B() { $.post(url, {}, function () { alert("我错了!"); ...
- c语言 动态数组
C语言中,在声明数组时,必须明确告诉编译器数组的大小,之后编译器就会在内存中为该数组开辟固定大小的内存.有些时候,用户并不确定需要多大的内存,使用多大的数组,为了保险起见,有的用户采用定义一个大数组的 ...
- &10 基本数据结构——指针和对象的实现,有根树的表示
#1,指针和对象的实现 如果所用的语言或者环境不支持指针和对象,那我们该怎么用数组来将其转化呢?实质上可以将这个问题的本质转化为数组和链表这两种数据结构的转换,准确来说,是将链表表示的数据用数组表示. ...
- [iOS翻译]《iOS7 by Tutorials》系列:在Xcode 5里使用单元测试(上)
简介: 单元测试是软件开发的一个重要方面.毕竟,单元测试可以帮你找到bug和崩溃原因,而程序崩溃是Apple在审查时拒绝app上架的首要原因. 单元测试不是万能的,但Apple把它作为开发工具包的一部 ...
- 异步编程 In .NET(转)
转自:http://www.cnblogs.com/jesse2013/p/Asynchronous-Programming-In-DotNet.html 概述 在之前写的一篇关于async和awai ...
- JavaScript标记上的defer与async的作用与区别
当浏览器遇到 script 标签时,文档的解析将停止,并立即下载并执行脚本,脚本执行完毕后将继续解析文档.但是我们可以将脚本标记为 defer,这样就不会停止文档解析,等到文档解析完成才执行脚本,也可 ...