转:http://blog.csdn.net/lovexieyuan520/article/details/38935137

在前面的博客中,我介绍了openfire插件开发,在那篇博客中我详细的说明怎样开发一个基于控制台的插件,这篇博客中我要介绍基于web的插件程序,同样,这篇博客实在openfire插件开发的基础上开发的,如果有网友不明白的,请移步至前面相关的文章,我写openfire是一系列连续性的文章,建议大家从前面开始看起,以释没头没尾之嫌,好了,进入正题:

1、新建我们需要的jsp文件,在插件src目录下面增加web文件夹,在web文件夹中添加一个welcome.jsp文件,这个文件需要自己编写。 可以参考其他案例插件。截图如下:

       选择新建jsp文件,截图如下:

在welcome.jsp中随便输入写内容,我的如下:

  1. <%@ page language="java" contentType="text/html; charset=UTF-8"
  2. pageEncoding="UTF-8"%>
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  4. <html>
  5. <head>
  6. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. <title>helwo world welcome</title>
  8. <meta name="pageID" content="welcome" />
  9. </head>
  10. <body>
  11. <h1>hello world</h1>
  12. <input type="text"/>
  13. <input type="submit" value="提交">
  14. </body>
  15. </html>

修改helloWorld控制台插件的plugin.xml文件,内容如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <plugin>
  3. <class>com.helloworld.HelloWorldPlugin</class>
  4. <name>helloWorld</name>
  5. <description>First Openfire Custom Plugin.</description>
  6. <author>xieyuan</author>
  7. <version>1.0.0</version>
  8. <date>14/07/2014</date>
  9. <minServerVersion>3.9.0</minServerVersion>
  10. <adminconsole>
  11. <tab id="tab-server">
  12. <sidebar id="sidebar-server-settings">
  13. <item id="welcome" name="welcome"
  14. url="welcome.jsp"
  15. description="hello world" />
  16. </sidebar>
  17. </tab>
  18. </adminconsole>
  19. </plugin>

现在,我们来看看效果,刷新页面我们看到:

现在解释一下上面各个选项的含义:

welcome.jsp中<meta name="pageID" content="welcome" />,content对应的是plugin.xml中item中的id。

plugin.xml中tab对应的是页面的顶部tab,比如服务器对应的是id为tab-server,用户/组对应的是tab-users,反正都有一个对应,然后sidebar对应每一个tab下面的子项,比如服务器下面有两个子项分别为服务器管理器,服务器设置,对应id为sidebar-server-manager,sidebar-server-settings,最后的item节点中,id前面说了,name指页面超链接的文本。这样呢就能将插件中的页面放到自己想要的地方去。当然不一定要放到现有的tab下面,也可以新建一个tab,来存放。具体可以参考Fastpath Service这个插件的plugin.xml,照着他的例子写就行了。

最后使用ant build.xml文件,编译出最新的插件文件。ant之后,插件才会生效!

(转)openfire插件开发(二) 基于web的插件开发的更多相关文章

  1. IDEA Web渲染插件开发(二)— 自定义JsDialog

    <IDEA Web渲染插件开发(一)>中,我们了解到了如何编写一款用于显示网页的插件,所需要的核心知识点就是IDEA插件开发和JCEF,在本文中,我们将继续插件的开发,为该插件的JS Di ...

  2. 《基于WEB的独立学院补考重修管理系统研究》论文笔记(二十)

    <基于WEB的独立学院补考重修管理系统研究>论文笔记(1) 一.基本信息 标题:基于WEB的独立学院补考重修管理系统研究 时间:2016 来源:南通大学杏林学院 关键词:WEB:补考重修管 ...

  3. WebService学习之旅(二)JAX-WS基于Web容器发布WebService

    在上节中我们定义Web服务接口和实现类后,调用Endpoint类的静态方法publish发布来webservice,这种方法使用起来虽然简单,但是对于一个企业级应用来说通常对外提供的服务可能不止一个, ...

  4. Quartz应用实践入门案例二(基于java工程)

    在web应用程序中添加定时任务,Quartz的简单介绍可以参看博文<Quartz应用实践入门案例一(基于Web应用)> .其实一旦学会了如何应用开源框架就应该很容易将这中框架应用与自己的任 ...

  5. 基于web工作流开发

    目前在研发基于web工作流的开发 什么是工作流? 工作流简言之就是: 1.反应业务流程的计算机化的模型. 2.一类能够完全或者部分自动执行的经营过程:(为了提高效率,实现自动化). 3.任务.活动及活 ...

  6. 基于Web的系统测试方法

    基于Web的系统测试与传统的软件测试既有相同之处,也有不同的地方,对软件测试提出了新的挑战.基于Web的系统测试不但需要检查和验证是否按照设计的要求运行,而且还要评价系统在不同用户的浏览器端的显示是否 ...

  7. 模块讲解----反射 (基于web路由的反射)

    一.反射的实际案例: def main(): menu = ''' 1.账户信息 2.还款 3.取款 4.转账 5.账单 ''' menu_dic = { ':account_info, ':repa ...

  8. 基于 Web 的远程 Terminal 模拟器安装使用详解

    http://lzw.me/a/shellinabox.html 一.Shellinabox 简介 Shellinabox 是一个基于 web 的终端模拟器,采用 C 语言编写,使用 Ajax 与后端 ...

  9. 基于Web的实验室管理系统技术简要报告

    基于Web的实验室管理系统技术简要报告 Copyright 朱向洋 Sunsea ALL Right Reserved 一.网站架构 该网站使用C#语言,利用SQL Server2008数据库,采用V ...

随机推荐

  1. POJ 1655 Balancing Act (树状dp入门)

    Description Consider a tree T with N (1 <= N <= 20,000) nodes numbered 1...N. Deleting any nod ...

  2. 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】01、环境准备

    开发环境 windows+STS(一个针对Spring优化的Eclipse版本)+Maven+SQLServer 环境部署 1.安装SQLServer(使用版本2008R2) 自行安装,此处略过 2. ...

  3. Django的流程如何理解(餐厅点餐举例)

    去饭店(商场)吃饭的步骤: 告诉前台服务员,来一小碗牛肉拉面,菜单上勾上一个牛肉拉面(url) 服务员去拉面窗口,告诉后厨,一碗牛肉拉面),后厨(view)开始准备. 后厨给打杂小弟说,给我一份儿面条 ...

  4. StringUtils 方法全集

    最近做项目需要,经常需要最字符串进行拆分等操作,经搜索和研究,发现了一篇StringUtils方法全集的文章,不错,特贴出来,以后用: 参考:http://blog.sina.com.cn/s/blo ...

  5. python re模块常用的正则表达式

    '.'     默认匹配除\n之外的任意一个字符,若指定flag DOTALL,则匹配任意字符,包括换行 '^'     匹配字符开头,若指定flags MULTILINE,这种也可以匹配上(r&qu ...

  6. 用 Flask 来写个轻博客 (15) — M(V)C_实现博文页面评论表单

    目录 目录 前文列表 实现 post 视图函数 在 posthtml 中添加表单 效果 前文列表 用 Flask 来写个轻博客 (1) - 创建项目 用 Flask 来写个轻博客 (2) - Hell ...

  7. float不完整带来的IE7下的不兼容

    这种原因是因为搜索用了float:right;添加报考院校和导入文件没有用float; 解决的方法是:1.给添加报考院校和导入文件分别添加float:left;2.把搜索那部分代码写在添加报考院校和导 ...

  8. TTL 与 CMOS

    Frm: https://blog.csdn.net/qq_27745395/article/details/76687175 http://baijiahao.baidu.com/s?id=1598 ...

  9. Java对象相等比较(Equals)

    以下代码显示如何实现equals()和hashCode()方法 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 ...

  10. 在mac版virtual box中安装ubuntu虚拟机的NAT/Host-Only网络配置踩坑记录

    之前用惯了vmware和parallels desktop,网络配置十分智能,基本不用自己配置.由于版权原因,工作电脑上换了免费的virtual box用,四五年都完全在虚拟机里干活的本菜鸡居然在虚拟 ...