管理后台插件的开发及示例

可以针对网站管理后台、代理后台、总管理后台,这三种后台进行功能扩展。 而这些扩展的,将在相应后台左侧的 “ 功能插件 ” 中显示。 这里,以一个简单的例子,来讲解如何进行插件功能的扩展。 我们增加一个插件,该插件在总管理后台中,功能插件 菜单下,子菜单名为 **入门示例** ,该插件在网市场云建站系统中注册的唯一 id 标示为 **learnExample** ## 第一步,增加一个插件 在 CMS模式网站管理后台 中,增加一个名为 入门示例 的插件。 1. 创建 com.xnx3.wangmarket.plugin.learnExample 包 1. 增加 com.xnx3.wangmarket.plugin.learnExample.Plugin 类,该类的作用便是将插件注册进网市场云建站系统。 所创建的目录及Plugin类,结构如下图方框中所示:
其中,Plugin 类的源代码为: ```` package com.xnx3.wangmarket.plugin.learnExample; import com.xnx3.wangmarket.admin.pluginManage.anno.PluginRegister; /** * 插件学习入门示例。这个便是将插件注册进网市场云建站系统中,让某个指定的管理后台中,出现这个插件的入口菜单。 * @author 管雷鸣 */ @PluginRegister(id="learnExample" , menuTitle = "入门示例",menuHref="../../plugin/learnExample/index.do", applyToSuperAdmin=true) public class Plugin{ } ```` 其中,PluginRegister 注解的参数说明如下: | 变量 | 说明 | 默认值 | 是否必填 | | ------------ | ------------ | ------------ | ------------ | | id | 该插件的唯一标识。如自定义表单插件,唯一标识便是 formManage 。注意不能与其他插件重名 | 无 | 必填 | | menuTitle | 在网站管理后台中,功能插件下,显示的菜单项的标题文字 | 无 | 必填 | | menuHref | 在网站管理后台中,功能插件下,显示的菜单项的超链接网址。如:站外的绝对路径 ( http://www.baidu.com ),或站内的相对路径 ( ../../column/popupListForTemplate.do ) | 无 | 必填 | | applyToCMS | 是否在 CMS模式**网站管理后台** 的功能插件中显示,true为显示,false为不显示。| false | 可不填 | | applyToPC | 是否在 电脑(pc)模式**网站管理后台** 的功能插件中显示,true为显示,false为不显示。 | false | 可不填 | | applyToWAP | 是否在 手机(wap)模式**网站管理后台** 的功能插件中显示,true为显示,false为不显示。 | false | 可不填| | applyToAgency | 是否在 **代理后台** 的功能插件中显示,true为显示,false为不显示。| false | 可不填 | | applyToSuperAdmin | 是否在 **总管理后台** 的功能插件中显示,true为显示,false为不显示。 | false | 可不填 | #### 启动项目,进行测试 1. 进入登陆页面 http://localhost:8080/login.do 1. 使用 账号: admin 密码: admin 进行登陆 1. 查看效果,可以看到,功能插件下,已经多了这个名为 " 入门示例 " 的插件了!如下图所示:
当然,它点击是报404的,找不到页面的,这个我们需要在下面第二步进行实现。 ## 第二步,具体功能实现 这里,来给 入门示例 这个插件,增加一个首页,当点击功能插件下的 **入门插件** 子菜单时,会打开这个入门插件的首页。 #### 1. Java代码创建Controller控制器 在 com.xnx3.wangmarket.plugin.learnExample 包下, 创建一个包 controller ,然后在 controller 下 ,创建一个控制器 > com.xnx3.wangmarket.plugin.learnExample.controller.IndexLearnExamplePluginController ```` package com.xnx3.wangmarket.plugin.learnExample.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.xnx3.wangmarket.admin.controller.BaseController; /** * CMS模式下,输入模型相关操作 * @author 管雷鸣 */ @Controller @RequestMapping("/plugin/learnExample/") public class IndexLearnExamplePluginController extends BaseController { /** * 当点击 功能插件 下的子菜单 入门示例 时,会进入此页面( 因为在 Plugin 类中,注册的 menuHref 填写的url是这个 ) */ @RequestMapping("index${url.suffix}") public String index(){ /* * 这里可进行逻辑控制等 */ //这里定位到 src/main/webapp/WEB-INF/view/plugin/learnExample/index.jsp return "plugin/learnExample/index"; } } ```` 目录结构如下:
#### 2. 创建静态资源存放文件 创建 css、js、images 等静态资源存放的文件,在 src/resource/static/plugin/ 目录下,创建一个名为 learnExample 的目录(文件夹名同本插件注册进网市场中的唯一id),learnExample下再分别建立 css、js、images文件夹,用于存放各种静态文件。目录结构如下:
如上图所示,这里,已经放上了一个二维码图片 learnExample/images/qr.jpg ,它将在前端页面中用到。 #### 3. 创建前端页面 1. src/main/webapp/WEB-INF/view/plugin 目录下,增加 **learnExample** 文件夹(这个文件夹名,便是第一步中,注册进网市场的,插件的唯一 id,跟这个插件相关的前端页面,都会在这个文件夹中) 1. 在 learnExample 文件夹下,增加 index.jsp 文件,这里,内容简单写上点,只是个示例: ```` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> Hello , 是 管雷鸣 创造了我。这是我们 网市场云建站系统 的功能插件开发的入门示例,如果您懂Java,可以用此扩展定制您所需要的功能!
```` #### 4. 重新启动项目,进行测试 登陆总管理后台,点开 功能插件 ,点击 “ 入门示例 ”,即可看到下图所示:
#### 至此,功能插件演示完毕! ## 备注:文件创建放置说明 | 分类 | 存放目录 | 示例 | | ------------ | ------------ | ------------ | | Java代码 | com.xnx3.wangmarket.plugin | com.xnx3.wangmarket.plugin.learnExample | | 前端页面 | src/main/webapp/WEB-INF/view/plugin/ | src/main/webapp/WEB-INF/view/plugin/learnExample | | 静态资源 | src/resource/static/plugin/ | src/resource/static/plugin/learnExample/ | ##