本文先生成一个具体的系统,让大家有感性的认识,再对代码做一些简单的分析。
本文的前提是安装 sakai project app builder;同时你得安装maven,并能简单的使用。http://blog.csdn.net/totogogo/archive/2007/12/17/1942867.aspx这篇文章讲了maven 的编译生命期,讲得那是很不错。
采用Sakai Project App Builder,如下图:
选择Project Type为Wicket,Implementations为Hello World app,Sakai version为K1(2.6.x+)
用cmd到项目的目录下,输入mvn package,在tool目录下有一个target目录,会找到一个sakaiapphelloworld-tool-0.1.war文件。
将这个文件拷到sakai部署的webapps目录下,重启sakai就可以了。
接下来,在浏览器中安装并测试工具。
点击”Sites”,选择一个站点,点击”Add/Edit pages”,到达Page编辑,点击”New Page”,增加一个Page,随便其个名字,点击下面的”Continue Editing Tools”,在工具列表中选择sakai-app-helloworld,如下图:
保存后,算是安装好了。
接下来到达对应的”Site”,就可以看到效果了:
下面说说代码结构。
带着这么一个疑问去看代码:示例产生了什么代码,使得在浏览器中的后台能看到并选中相应的工具。
这个helloworld的包类结构如下:
经过阅读,里面的四个.java 文件,都是和为实现Wicket渲染的代码,并没有主动注册的代码块。
那么,推断该工具是被动注册的,即sakai框架主动加载工具,那么在xml配置文件中就一定有相关信息。
于是,用dir列出该工厂下的所有文件,观察到一个“可疑文件”,”sakai.sakaiapphelloworld.xml”,打开,有下面的描述:
看字段命名推测,再看值肯定,这里就是注册的配置了。
有了推测,我们再找到内核,tool/impl/ToolComponent.java,里面有一个register函数,也发现确实是取这几个字段的。
为了让你看得明白,我们再来跟踪注册过程。
在 调试中才发现,原来注册是在ActiveToolComponent.java中。
有如下堆栈:
其中ToolListener.contextIntialized实现如下:
如上面注释中说的,这个函数找出webapp目录下/tools目录中的资源进行注册。
- 大小: 18.8 KB
- 大小: 7 KB
- 大小: 7.6 KB
- 大小: 12.5 KB
- 大小: 7.4 KB
- 大小: 7.4 KB
- 大小: 10.3 KB
分享到:
相关推荐
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
麒麟win10双系统重新安装win10后麒麟启动菜单看不到解决方法
多邻国Duolingo v6.0.3 高级版.apk
QT网络编程: 实现TCP通讯设置(客户端)
减少重复造轮子,开源微信小程序商城(前后端开源:uniapp+Java)。快速搭建一个属于自己的微信小程序商城。
彩虹云商城 最新彩虹代刷V6.9.0免授权纯净完整版 直接上传源码解压缩后访问域名安装即可,亲测可用 彩虹自助下单系统 安装说明: 上传到空间后直接访问即可根据提示安装。 PHP推荐使用7.0及以上版本 V6.9 1.修复SQL注入漏洞 2.修复后台微信QQ扫码登录 V6.8.5 1.修复亿乐对接 2.新增支持倍数输入框 V6.8 1.更新全新的faka模板 2.新增微信快捷登录 3.新增批量下单功能 4.防CC配置新增滑动验证码模式 5.修复部分地区后台加载错误 6.修复https网站对接http支付接口 7.后台登录支持微信QQ扫码登录
MyBatis-Plus学习思维导图
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
分布式搜索引擎ElasticSearch思维导图
网鼎杯
网络安全入门教程(工具版)
科普里控制器调试软件工具使用 win64环境安装
内容概要:本文档详细介绍了GC9503V单片机a-Si TFT LCD驱动器的技术规格,包括主要特点、内部结构图、引脚定义以及系统接口等。GC9503V支持480x864分辨率,16.7百万色显示,无内置GRAM。文章还提供了详细的引脚尺寸、对齐标记尺寸、芯片信息以及接口模式控制的序列实例,如DCS写入命令及其参数。 适合人群:LCD显示屏设计人员、嵌入式系统工程师、电子硬件开发者和技术研究人员。 使用场景及目标:帮助开发者快速理解和应用GC9503V在实际产品中的具体使用方法,掌握LCM与MCU之间的数据交互方式,实现高效的屏幕驱动设计。 其他说明:GalaxyCore公司保留在不事先通知的情况下更改文档内容的权利。
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
yolo系列算法目标检测数据集,包含标签,可以直接训练模型和验证测试,数据集已经划分好,适用yolov5,yolov8,yolov9,yolov7,yolov10,yolo11算法; 包含两种标签格:yolo格式(txt文件)和voc格式(xml文件),分别保存在两个文件夹中; yolo格式:<class> <x_center> <y_center> <width> <height>, 其中: <class> 是目标的类别索引(从0开始)。 <x_center> 和 <y_center> 是目标框中心点的x和y坐标,这些坐标是相对于图像宽度和高度的比例值,范围在0到1之间。 <width> 和 <height> 是目标框的宽度和高度,也是相对于图像宽度和高度的比例值
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
某酒店排水课程设计计算书.doc
那些年,与你同分同位次的同学都去了哪里?全国各大学在四川2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据