日期:2014-05-16 浏览次数:20350 次
??????? 之前在extjs官网上看到那强大的功能和绚丽的界面,也忍不住开始学了,刚刚开始学真的不大好受,用尽吃奶的力终于把extjs的两个demo组合起来作为一个留言板:
??????? 分别为http://www.extjs.com/deploy/dev/examples/grid/progress-bar-pager.html这个demo的进度条,
http://www.extjs.com/deploy/dev/examples/grid/binding-with-classes.html这个demo的显示框结合,
看着就舒服...哈哈....转入正题:
??????? 熟悉S2SH的都知道,作为显示层的Struts是负责与页面进行交互,当S2SH整合好之后再整合extjs进去,也必然是Struts与extjs之间的事情,所以这里spring与hibernate就不啰嗦了
??????? 这里使用json来作为Struts与extjs之间的中介,与XML类似的,json是一种轻量级的数据交换格式,易于人阅读和编写,比XML的代码量更少,看起来更直观,所以这里就采用json
XML:
<article>
????? <title>文章标题1</title>
????? <text>文章正文1</text>
</article>
<article> ????? <title>文章标题2</title> ????? <text>文章正文2</text> </article> 相当于json的: {"article":["title":"文章标题1","text":"文章正文1"],"article":["title":"文章标题2","text":"文章正文2"} ??????? 上面的例子把等价的XML与json列出来作为对比,语法结构也很简单. ? Struts2部分: ??????? 和以往S2SH一样,整合的方式都是一样(需要添加json-lib.jar与struts2-json-plugin.jar),唯一不同就在action返回的内容不一样,struts.xml的片段: ??? <package name="json" extends="json-default" namespace="/json"> ??????? 这里是需要继承json-default,而平常使用都是继承struts-default的,还有result 的类型为json,这里并不需要返回页面,经过action处理之后Struts就返回json的字符串给extjs,至于怎么转呢?Struts2的json插件会帮我们自动转,如ViewMessageAction类中有: private List<Messagebox> messagelist; //省略getter&setter方法
??????? <action name="ViewMessageAction" class="viewMessageAction">
??????????? <result type="json" />
??????? </action>
??? </package>
??????? Messagebox里面的是留言ID,留言标题,留言正文等属性和相应的getter&setter方法,当执行WEBROOT/json/ViewMessageAction.action时,发现json插件已经把数据都转换好: