原创:struts2+json+android整合开发解析前奏

本文介绍了一个使用Android客户端展示商品信息的应用案例,重点讲解了如何通过Struts2框架配合JSON进行数据交互的过程,包括服务器端程序开发的具体步骤。
很长时间没有写bolg,自己也没有坚持下去,我真得不敢想象自己在前两个月是怎么走来的,从早到晚不停的授课,自己累得够呛!但是欣慰的时,我带的河软csdn乐知学院Java的40多名学员都就业了,都进入了企业工作,为他们有今天的成果,而感到骄傲,在这里我也真诚的祝福他们,能够在企业的大环境下,成长的更快! 呵呵说了那么多,那好好的谈谈下面主要介绍的内容吧,今天我给大家带来的是android2.2+struts2+json的开发过程,此案例为在android客户端显示最新的商品信息为例,重点介绍json的解析过程。 首先我们来开发服务器端程序,此案例采用eclipse开发工具 首先createaDynamicwebproject项目,在DynamicWebProject界面中配置Targetruntime及Dynamicwebmoduleversion(此版本案例选择的为2.5),点击完成即可。 、搭建struts2的开发环境,引入以下类库文件, struts2-json-plugin-2.1.8.1.jar json-lib-2.1.jar commons-collections-3.2.jar commons-beanutils-1.7.0.jar commons-lang-2.3.jar commons-logging-1.0.4.jar ezmorph-1.0.3.jar 这7个包是返回json形式的数据必须的。因为json大量引用了Apachecommons的包,所以要加入4个,commons包,除了commons的包外,还需要引入一个ezmorph的包。最后加入struts2必须的6个包: struts2-core-2.1.8.1.jar xwork-core-2.1.6.jar ognl-2.7.3.jar freemarker-2.3.15.jar commons-fileupload-1.2.1.jar commons-io-1.3.2.jar 修改web.xml及添加struts.xml文件() web.xml内容如下: <?xmlversion="1.0"encoding="UTF-8"?> <web-appid="WebApp_9"version="2.4"xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2eehttp://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <display-name>StrutsBlank</display-name> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app> struts.xml位于src目录内容如下: <?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> </struts> 创建相应的实体bean,业务层及action层 packagecn.redarmy.domain; importjava.io.Serializable; publicclassGoodimplementsSerializable{ /** * */ privatestaticfinallongserialVersionUID=1L; privateIntegerid; privateStringname; privatefloatprice; //省去了.构造器set,get方法 //service层 接口: importjava.util.List; importcn.redarmy.domain.Good; publicinterfaceGoodService{ publicabstractList<Good>getNewsGood(); publicabstractGoodfindGood(); } 类: packagecn.redarmy.service.impl; importjava.util.ArrayList; importjava.util.List; importcn.redarmy.domain.Good; importcn.redarmy.service.GoodService; publicclassGoodServiceImplimplementsGoodService{ /*(non-Javadoc) *@seecn.redarmy.service.impl.GoodService#getNewsGood() */ @Override publicList<Good>getNewsGood(){ //定义返回的结果集 List<Good>goods=newArrayList<Good>(); //在这里可以到数据库中查询最新的商品信息 goods.add(newGood(1,"苹果ipad2",3688)); goods.add(newGood(2,"thinkPadE400579A12",3799)); goods.add(newGood(3,"thinkPad",3688)); goods.add(newGood(4,"苹果ipad2保护膜",400)); returngoods; } /*(non-Javadoc) *@seecn.redarmy.service.impl.GoodService#findGood() */ @Override publicGoodfindGood(){ //也是从数据库中查询出来的 Goodgood=newGood(1,"苹果ipad2",3688); returngood; } } Action: packagecn.redarmy.action; importjava.util.List; importcn.redarmy.domain.Good; importcn.redarmy.service.GoodService; importcn.redarmy.service.impl.GoodServiceImpl; importcom.opensymphony.xwork2.ActionSupport; publicclassGoodActionextendsActionSupport{ /** * */ privatestaticfinallongserialVersionUID=6340167538296898588L; //定义业务操作bean privateGoodServicegoodService=newGoodServiceImpl(); //定义返回的对象 privateList<Good>goods; privateGoodgood; publicList<Good>getGoods(){ returngoods; } publicvoidsetGoods(List<Good>goods){ this.goods=goods; } publicGoodgetGood(){ returngood; } publicvoidsetGood(Goodgood){ this.good=good; } //查询最新商品 publicStringfindAll(){ goods=goodService.getNewsGood(); returnSUCCESS; } //查询单个商品 publicStringfindById(){ good=goodService.findGood(); returnSUCCESS; } } 配置后的struts.xml文件内容如下: <?xmlversion="1.0"encoding="UTF-8"?> <!DOCTYPEstrutsPUBLIC "-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN" "http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <constantname="struts.enable.DynamicMethodInvocation"value="false"/> <constantname="struts.devMode"value="false"/> <!--extends继承json-default--> <packagename="default"namespace="/csdn"extends="json-default"> <actionname="findGood"class="cn.redarmy.action.GoodAction" method="findById"> <!--设置返回类型为json--> <resultname="success"type="json"> <paramname="includeProperties"> good\.id,good\.name,good\.price </param> </result> <resultname="input">/WEB-INF/index.jsp</result> </action> <actionname="listNewsGoods"class="cn.redarmy.action.GoodAction" method="findAll"> <!--设置返回类型为json--> <resultname="success"type="json"> <paramname="includeProperties"> goods\[\d+\]\.id,goods\[\d+\]\.name,goods\[\d+\]\.price </param> </result> <resultname="input">/WEB-INF/index.jsp</result> </action> </package> </struts> 至此服务器端开发已经完毕,在这里我比没有真正的从数据库提取数据,而是写死得,但如果连接数据库的操作那对于你来说应该不难吧! 以上内容归redarmychen版权所有,如想转载请附带出处,如有疑问请发邮件至redarmy.chen@gmail.com
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值