struts json前后台交互

struts json前后台交互

在做以struts为控制器的服务器的时候,我们如何与安卓等手机用户交互呢,

通常是通过JS的json来发送数据,

这些json对象在struts插件下转成了后台的对象列表list 或set,当然也可以转成一个实体对象,

另外,实体对象中可以包含List 和Set。

           今天,就让我们来浅谈JS与后台交互该如何去玩。

首先,让我们来看看前台的接口怎么写30、接口30功能:获取项目人员列表(根据项目)URL:

http://localhost:8888/xxx/xxx/WhbAction_xxx.do
HTTP Method:GET
请求参数:projectID
返回结果:登录人所属项目的项目名及id的json数据
{
"projectPerson": [
		{                 <--! 每个person对象需要3个属性  -->
			"id": "1",
"Account":"xiancai" "Name": "Tom", }, { "id": "1",
"Name": "Tom",
"Account":"xiancai" }, { "id": "1", "Name": "Tom",
"Account":"xiancai" }, { "id": "1", "Name": "Tom",
"Account":"xiancai" }, { "id": "1", "Name": "Tom",
"Account":"xiancai" }, { "id": "1", "Name": "Tom",
"Account":"xiancai" }, ] }

这就是典型json 字符串格式了吧。

说明:

      每个大括号可以表示成为一个Map对象

      中括号表示一个数组,在后台就是list或者Set

      中括号中又有大括号,即表示list中装了Map类型对象。

 

现在,让我们来看看后台java代码该如何写:

 

 

 public String getProjectPerson() {
        dataMap = new HashMap<String, Object>();
        System.out.println(projectId);
        List<Map<String, String>> mapList = new ArrayList<Map<String, String>>();
        projectUsers = dailyaccountservice.getProjectUsers(Integer.parseInt(projectId));
        Iterator<Zt_User> i = projectUsers.iterator();
        while (i.hasNext()) {
            Map<String, String> projectMap = new HashMap<String, String>();
            Zt_User zuser = i.next();
            projectMap.put("Id", zuser.getId().toString());
            projectMap.put("Name", zuser.getRealname());
            projectMap.put("Account",zuser.getAccount());
            mapList.add(projectMap);
        }
        dataMap.put("projectPerson", mapList);
        return "getJson";

    }

 

大家可以看到,一般我后台要根据前台接口文档写数据,前台要求什么数据,我就返回什么数据,在后台做一个包装的过程。

一个大的MAP 包装LIST,list中又包装很多的MAP。每一个MAP 算一个对象。

 

posted @ 2014-08-20 09:58  共同富裕  阅读(728)  评论(0编辑  收藏  举报