- 呵呵说了那么多,那好好的谈谈下面主要介绍的内容吧,今天我给大家带来的是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>
- 至此服务器端开发已经完毕,在这里我比没有真正的从数据库提取数据,而是写死得,但如果连接数据库的操作那对于你来说应该不难吧!
Android+json+Struts2服务器端开发
最新推荐文章于 2024-09-05 17:16:11 发布