zoukankan      html  css  js  c++  java
  • 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 算一个对象。

  • 相关阅读:
    Linux 线程间通信方式+进程通信方式 总结
    使用opencv第三方库的makefile文件示例
    rplidar SDK 二次开发---之获取目标信息(0.1)
    #include "Target_orientation.h"
    opencv —— 调用摄像头采集图像 VideoCapture capture(0);
    cmake 支持-lpthread
    ROS下sensor_msgs::ImagePtr到sensor_msgs::Image之间的转换
    JAVA 校验身份证号码工具类(支持15位和18位)
    python面向对象游戏练习:好人坏人手枪手榴弹
    python 私有属性的作用
  • 原文地址:https://www.cnblogs.com/xiancai5210/p/3923886.html
Copyright © 2011-2022 走看看