jquery.ztree.js搜索插件v1.0发布:jquery.ztree.search.js

之前工作中有个需求,是模糊搜索ztree树节点名称,然后展示出来,当时研究了下ztree,然后做出来了,当时只是写了几个零散的方法就实现了(DEMO见之前一篇文章:《我也来实现ztree模糊搜索功能》)。

这几天,突然有同事问我要代码,看来其他同事也会使用呢,于是我把几个零散的方法给了他。可是我在给他的过程中,觉得零散方法是挺乱的,而且有些过度方法也会暴露给调用者,为什么不自己封装一下呢?另外既然ztree原生没有这种功能(原生ztree只能找到搜索出来的节点,要展示还需要结合另外几个方法),那么我应该做一个插件实现这个功能,就一个js,其他的同事只要引入,然后直接用tree对象调用方法就可以实现。

于是研究了下ztree的源码,发现ztree对象的生成是靠绑定在$上的zTree.init方法实现的,于是按照作者的思路和写法对zTree.init方法进行了重写,这样我自己就可以很容易的插入自定义的方法了,于是就完成了这个插件。

插件下载地址:
https://github.com/strangeen/jquery.ztree.search

下面是Quick Start,详见上面的地址:

<script type="text/javascript" src="jquery.ztree.all.min.js"></script>
<script type="text/javascript" src="jquery.ztree.search.js"></script>
<script type="text/javascript">
  var zTreeObj = $.fn.zTree.init($("#tree"), setting, zNodes);
</script>
  
<input type="text" value="" id="in" />
<input type="button" value="SEARCH" onclick="zTreeObj.searchNodes($('#in').val())" />
  1. jquery.ztree.search.js必须在jquery.ztree.all.min.js下方引入
  2. 点击search按钮,zTree对象zTreeObj在页面上的显示状态就为按输入框中值搜索后的结果,清空输入框会擦除高亮展示,tree视图不改变

Echarts自定义Legend按钮实现以及Demo

前段时间,一个朋友问能不能做出这样的Echarts图,大概是这样:

他有个需求,有4条线分别代表:缓存100时方案A的曲线,缓存200时方案A的曲线,缓存100时方案B的曲线,缓存200时方案B的曲线,按常规模式这个时候Echarts的Legend会有4个按钮(缓存100方案A,缓存200方案A,缓存100方案B,缓存200方案B),它们分别控制一条线,但是他不想这样,他想要这样的4个按钮:缓存100,缓存200,方案A,方案B,每个按钮可以关闭对应的两条线。相当于他想要的展示维度和Echarts不一样,他的展示效果在分类上更合理。

当时之前我也没有做过,我也不知道能不能实现,直到后面有一天突然看到Echarts3.0的API,发现Echarts是提供了Legend点击事件方法的!然后马上去翻看2.0的,结果发现在用户手册上方一点的位置也明确写了的,只是从来没有注意到罢了…(-_-|||),不仅如此,Echarts还提供了线条开关的API!

既然这样,那这个需求就有可能实现了,可以自定义4个Legend按钮,然后在自己写方法来控制曲线,于是,没过多久,就有了这篇文章,先看看DEMO。下面开始解释代码:

继续阅读

Maven构建SpringMVC环境报错“java.lang.ClassNotFoundException: org.springframework.web.servlet. DispatcherServlet”

今天朋友发了个maven项目给我看,问我为什么启动不了。说实话,一直用Jfinal都快不会用spring了… 还是决定看看。

接收了文件,是maven构建的,打开eclipse,导入maven项目,然后部署到tomcat,启动tomcat,就报错了:“java.lang.ClassNotFoundException: org.springframework.web. servlet.DispatcherServlet”,错误信息如下图:

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet

很明显的第一反应就是没有SpringMVC的包,于是检查pom.xml,发现没有问题,spring web mvc包是正确引入了的,查看Maven Dependencies,发现也是正常的,打开jar包,也没有问题,web.xml配置也没有问题…

我去,难道jar包版本问题,于是部署了更高版本的jar包,并且还试过配置更高的JDK版本,依然报错,不能启动…

于是google,发现大部分人都是说没有导入jar包,没有部署成功,可是jar包我导入了,也配置正确了。

就在这时,突然看到有个人说tomcat是否部署成功,于是立刻查看网站部署的文件夹,发现WEB-INF下根本没有lib文件夹… 继续阅读

Eclipse导出javadoc报错“编码GBK的不可映射字符”解决办法

状态

前几天导出javadoc,报错“编码GBK的不可映射字符”,其实我知道是字符集没有设置正确,但是不知道哪里设置…

这种情况最恼火,于是百度之,找到了方法:

在导出javadoc的对话框中,一路Next,直到最后一个对话框界面,会看到上面有行文字:

VM options (prefixed with ‘-J’, e.g. -J-Xmx180m for larger heap space):

就在这句话下面的输入框中输入:

-encoding UTF-8 -charset UTF-8

这样点击Finish之后,就可以正常生成javadoc了。

Echarts长图全图打印方案以及Demo

前面使用echarts做统计图表,做出来的echarts图横向宽度挺大的,都超出页面了,然后我设置了一个横向滚动条。

然后!需求要求有打印按钮,要将图表打印出来(突然好想砍掉需求方)… 然后悲催的发现,图表滚动条所到的地方才能被打印出来,然后其他的地方就被遮住了,就像下面那个样子…

有滚动条的echarts图打印不全

有滚动条的echarts图打印不全

怎么办呢?突然想到echarts可以转换成图片的,于是想到了可以在打印前将echarts转换为图片放在页面,然后缩放到指定宽度,然后再打印,打印完成后再切换回来!于是开始试验,最后发现方案可行,就有了下面的代码。

继续阅读