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

 很长时间没有写bolg,自己也没有坚持下去,我真得不敢想象自己在前两个月是怎么走来的,从早到晚不停的授课,自己累得够呛!但是欣慰的时,我带的河软csdn乐知学院Java的 40 多名学员都就业了,都进入了企业工作,为他们有今天的成果,而感到骄傲,在这里我也真诚的祝福他们,能够在企业的大环境下,成长的更快!   
  •     呵呵说了那么多,那好好的谈谈下面主要介绍的内容吧,今天我给大家带来的是android2.2+struts2+json的开发过程,此案例为在android客户端显示最新的商品信息为例,重点介绍json的解析过程。   
  •        
  •     首先我们来开发服务器端程序,此案例采用eclipse开发工具   
  •     首先create a Dynamic web project项目,在Dynamic Web Project界面中配置Target runtime 及 Dynamic web module version (此版本案例选择的为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大量引用了Apache commons的包,所以要加入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内容如下:   
  • <?xml version="1.0" encoding="UTF-8"?>   
  • <web-app id="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/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">   
  •   
  •     <display-name>Struts Blank</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目录内容如下:  
  • <?xml version="1.0" encoding="UTF-8" ?>  
  • <!DOCTYPE struts PUBLIC  
  •     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
  •     "http://struts.apache.org/dtds/struts-2.0.dtd"> 
  •  
  • <struts>  
  •  
  • </struts>  
  •     创建相应的实体bean,业务层及action层  
  • package cn.redarmy.domain;  
  •  
  • import java.io.Serializable;  
  •  
  • public class Good implements Serializable {  
  •  
  •     /**  
  •      *   
  •      */  
  •     private static final long serialVersionUID = 1L;   
  •   
  •     private Integer id;   
  •     private String name;   
  •     private float price;   
  • //省去了.构造器 set,get方法   
  •   
  • //service层   
  • 接口:   
  • import java.util.List;   
  •   
  • import cn.redarmy.domain.Good;   
  •   
  • public interface GoodService {   
  •   
  •     public abstract List<Good> getNewsGood();   
  •   
  •     public abstract Good findGood();   
  •   
  • }   
  •   
  • 类:   
  • package cn.redarmy.service.impl;   
  •   
  • import java.util.ArrayList;   
  • import java.util.List;   
  •   
  • import cn.redarmy.domain.Good;   
  • import cn.redarmy.service.GoodService;   
  •   
  • public class GoodServiceImpl implements GoodService {   
  •   
  •     /* (non-Javadoc)  
  •      * @see cn.redarmy.service.impl.GoodService#getNewsGood() 
  •      */  
  •     @Override  
  •     public List<Good> getNewsGood() {   
  •         // 定义返回的结果集   
  •         List<Good> goods = new ArrayList<Good>();   
  •         // 在这里可以到数据库中查询最新的商品信息   
  •         goods.add(new Good(1"苹果ipad2"3688));   
  •         goods.add(new Good(2"thinkPad E40 0579A12"3799));   
  •         goods.add(new Good(3"thinkPad"3688));   
  •         goods.add(new Good(4"苹果ipad2保护膜"400));   
  •         return goods;   
  •     }   
  •   
  •     /* (non-Javadoc)  
  •      * @see cn.redarmy.service.impl.GoodService#findGood() 
  •      */  
  •     @Override  
  •     public Good findGood() {   
  •         // 也是从数据库中查询出来的   
  •         Good good = new Good(1"苹果ipad2"3688);   
  •         return good;   
  •     }   
  • }   
  •   
  • Action:   
  • package cn.redarmy.action;   
  •   
  • import java.util.List;   
  •   
  • import cn.redarmy.domain.Good;   
  • import cn.redarmy.service.GoodService;   
  • import cn.redarmy.service.impl.GoodServiceImpl;   
  •   
  • import com.opensymphony.xwork2.ActionSupport;   
  •   
  • public class GoodAction extends ActionSupport {   
  •   
  •     /**  
  •      *   
  •      */  
  •     private static final long serialVersionUID = 6340167538296898588L;   
  •   
  •     // 定义业务操作bean   
  •     private GoodService goodService = new GoodServiceImpl();   
  •   
  •     // 定义返回的对象   
  •     private List<Good> goods;   
  •     private Good good;   
  •   
  •     public List<Good> getGoods() {   
  •         return goods;   
  •     }   
  •   
  •     public void setGoods(List<Good> goods) {   
  •         this.goods = goods;   
  •     }   
  •   
  •     public Good getGood() {   
  •         return good;   
  •     }   
  •   
  •     public void setGood(Good good) {   
  •         this.good = good;   
  •     }   
  •   
  •     // 查询最新商品   
  •     public String findAll() {   
  •         goods = goodService.getNewsGood();   
  •         return SUCCESS;   
  •     }   
  •   
  •     // 查询单个商品   
  •     public String findById() {   
  •         good = goodService.findGood();   
  •         return SUCCESS;   
  •     }   
  •   
  • }   
  •     配置后的struts.xml文件内容如下:   
  • <?xml version="1.0" encoding="UTF-8" ?>   
  • <!DOCTYPE struts PUBLIC   
  •     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"  
  •     "http://struts.apache.org/dtds/struts-2.0.dtd">   
  •   
  • <struts>   
  •   
  •     <constant name="struts.enable.DynamicMethodInvocation" value="false" />   
  •     <constant name="struts.devMode" value="false" />   
  •   
  •                                             <!-- extends 继承json-default -->   
  •     <package name="default" namespace="/csdn" extends="json-default">   
  •         <action name="findGood" class="cn.redarmy.action.GoodAction"  
  •             method="findById">   
  •             <!-- 设置返回类型为json -->   
  •             <result name="success" type="json">   
  •                 <param name="includeProperties">   
  •                     good\.id,good\.name,good\.price   
  •                 </param>   
  •             </result>   
  •             <result name="input">/WEB-INF/index.jsp</result>   
  •         </action>   
  •         <action name="listNewsGoods" class="cn.redarmy.action.GoodAction"  
  •             method="findAll">   
  •             <!-- 设置返回类型为json -->   
  •             <result name="success" type="json">   
  •                 <param name="includeProperties">   
  •                     goods\[\d+\]\.id,goods\[\d+\]\.name,goods\[\d+\]\.price   
  •                 </param>   
  •             </result>   
  •             <result name="input">/WEB-INF/index.jsp</result>   
  •         </action>   
  •     </package>   
  •   
  • </struts>   
  •   
  • 至此服务器端开发已经完毕,在这里我比没有真正的从数据库提取数据,而是写死得,但如果连接数据库的操作那对于你来说应该不难吧!   
  •   
  • 以上内容归redarmychen版权所有,如想转载请附带出处,如有疑问请发邮件至redarmy.chen@gmail.com  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
struts2 spring hibernate mybatis是一种常见的网站开发技术栈组合。它们分别负责不同的功能和层面,共同协作完成网站开发。 在一个网站开发案例中,可以使用struts2作为前端框架,负责接收用户的请求并将其转发到后台处理。struts2提供了很多方便的特性,比如表单验证、拦截器等,可以帮助开发者更高效地开发和管理代码。 而spring作为后端框架,负责组织应用的结构和控制流程。它提供了依赖注入、AOP等功能,使开发者能够更加灵活地管理和操作对象。spring还可以方便地集成其他框架,比如hibernate和mybatis。 hibernate是一个ORM(Object-Relational Mapping)框架,用于将对象和数据库关系映射起来。开发者可以通过编写简洁的实体类和配置文件,自动实现对象和数据库之间的映射,并且可以很方便地进行数据库操作。 mybatis是另一个ORM框架,它采用了更加灵活的SQL映射方式。开发者可以在XML配置文件中编写SQL语句,并通过mybatis的接口来执行这些SQL语句。mybatis还提供了很多高级功能,比如动态SQL、缓存等,可以提升开发效率和系统性能。 综合使用这些技术,可以设计出一个完整的网站开发流程。比如,前端请求会先经过struts2框架进行处理,然后通过spring框架注入相应的业务逻辑对象,最后通过hibernate或mybatis与数据库进行交互。这种技术栈的优势是各个框架之间的解耦,可以提高代码的可维护性和扩展性。 在课堂中开发网站时,可以结合这些技术进行源码编写。学习者可以尝试使用struts2框架搭建前端页面,使用spring框架管理后端对象,使用hibernate或mybatis进行数据库操作。通过这样的实践,学习者能够更加深入了解这些框架的使用和原理,并且锻炼自己的编码能力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值