很长时间没有写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
原创:struts2+json+android整合开发解析前奏
本文介绍了一个使用Android客户端展示商品信息的应用案例,重点讲解了如何通过Struts2框架配合JSON进行数据交互的过程,包括服务器端程序开发的具体步骤。

被折叠的 条评论
为什么被折叠?



