有个项目需要用到类似shopex中
快递单打印
的功能
花了一段时间
终于搞定了
效率是不怎么高原因在于自己对系统框架还不熟悉java的功底不扎实摸索的时间太长
首先花了几天的时间去看shopex的实现方法(当然不是一直都看因为还有其他工作在忙)总体上是由flash和JavaScript交互完成的当然数据是由php提供的了由此我也可以运用到我们的系统中来这次我学习了一个新的JavaScript框架mootools因为shopex是通过这个框架来时间上述的功能的在交互过程中需要xml格式的数据php中有个方法可以直接将php的数组转换成xml格式的数据在java或者jsp中就没有类似的方法不过也有很强大的类来了完成jdom我简单操作了一下满足了这个功能的需求
先讲一下jdom的使用过程
下载后解压出来在build文件夹中找到jdomjar放到/WEBINF/lib下面
导入相关的包如import orgjdomDocument;
添加的一些方法Element root = new Element(data); Document doc = new Document(root);
这些数据组成后在Controller如何传到模板呢?这个让我困惑了好久还请同事过来帮忙好在同事经验丰富叫我去官方网站看文档可都是英文啊!(有个感悟只要掌握了思想和方法做什么都是一样的)
使用XMLoutputer然后需要转成String类型而且只需要片段的内容
XMLOutputter outputter = new XMLOutputter();
printData=outputteroutputString(docgetContent());
令外说一下jsp和xml的事原先我想用jstl来操作但是那个标签老出错我也不知道错在哪里后来还是在jsp里面插入java了事
再说说mootools网上的介绍很多我也没有时间去深入研究他们说源自prototype但比prototype好
我接触后发现也不错学习了一个方法很实用
对dom的操作也很强大
从项目中举例我想使得某个地方的元素鼠标经过是改变背景颜色鼠标滑出恢复原来的背景色
首先取得对象var cElements=$(boxprintcontent)getElements(span[class=menuitem]);
然后循环进行操作(这是原来的笨办法因为我对mootools还不熟但我知道jquery是可以很方便做到)
for (var i=;i<cElementslength;i++){
cElements[i]addEvents({
mouseover: function(e){thisaddClass(overLight);}
mouseout: function(e){thisremoveClass(overLight);}
});
}
效果实现了高兴啊哈哈附上jquery的代码(根据其他应用而设想的代码不知道会不会正常实现)
JQ(document)ready(function(){
JQ(nuitem span)hover(
function(){
JQ(this)addClass(overLight)
}
function(){
JQ(this)removeClass(overLight);
}
);
JavaScript的框架很多每个都各具特色都很优秀
但是我应该深入掌握某一个
例如某友只用jquery