基于restful 风格的Echart图标系统续

在上篇博客中我们说到后端代码这篇将具体详解 有三种方法

第一种是下面这些  只是需要改变两个地方 1.Ajax请求要加上.action 如 login.action 2.在webxml中的url-pattren中改为*.action(/*)代表拦截所有请求


        List<Product> list = new ArrayList<Product>();
         
        //这里把“类别名称”和“销量”作为两个属性封装在一个Product类里,每个Product类的对象都可以看作是一个类别(X轴坐标值)与销量(Y轴坐标值)的集合
        list.add(new Product("衬衣", 10));
        list.add(new Product("短袖", 20));
        list.add(new Product("大衣", 30));
         
        ObjectMapper mapper = new ObjectMapper();    //提供java-json相互转换功能的类
         
        String json = mapper.writeValueAsString(list);    //将list中的对象转换为Json格式的数组
         
//System.out.println(json);
         
        //将json数据返回给客户端
        response.setContentType("text/html; charset=utf-8");
        response.getWriter().write(json);    
}

第二种是

/*
// * 将 集合转换为  json 字符串
// */
// System.out.println("将 集合转换为  json 字符串");

                        List<User> uList = new ArrayList<User>();

                       uList.add(new User("1002","king","king","admin","wangzhiceng","/handsome.jpg"));
// String jsonListStr = objMapper.writeValueAsString(uList);
// System.out.println("jsonStr:\t"+jsonListStr);
// /*
// * 将 json 字符串 转换为 集合
// */
// List<User> uList1 = objMapper.readValue(jsonListStr,ArrayList.class);
// System.out.println("uList1:\t"+uList);

第三种是基于restful的相关开发

需要添加的是produces和ResponseBody标示

@RequestMapping(value="/restful",produces={"application/json;charset=UTF-8"})
@ResponseBody
public String restful()
{
System.out.println("restful 请求测试~");
return "restful 请求测试";
}
//将list集合以数组的形式返回给前端,遍历去除数据
@RequestMapping("getList")
@ResponseBody
public List<User> getList()
{
List<User> uList = new ArrayList<User>();
uList.add(new User("1002","king","king","admin","wangzhiceng","/handsome.jpg"));
uList.add(new User("1001","dream","dream","worker","jayson","/beautiful.jpg"));
return uList;
}

@RequestMapping(value="getObj/{testStr}",produces="application/json;charset=utf-8")
@ResponseBody
public User getObj(@PathVariable("testStr") String testStr)
{
System.out.println("----------- 请求  getObj 方法--------");
System.out.println("testStr:\t"+testStr);
User u = new User("1002","king","king","admin","wangzhiceng","/handsome.jpg");
return u;
}

/*
* RequestMapping 中 请求 路径 后加的 /{id} 表示 请求 时需要加上一个 传给
* 后端的 变量 id,此时 想要 在 响应的方法中 使用 该变量就需要 在 参数列表中 添加
* @PathVariable 接收类型(为 java 中的类型,此处为 String)   指定变量名(此处为 id)
*/
@RequestMapping(value="test/{id}",produces="application/json;charset=utf-8")
@ResponseBody
public String  test(@PathVariable("id") String id)


System.out.println("test---------id:\t"+id);
return id;
}

以  restful 方式  发出  ajax 请求
restful 请求返回的 对象  到前端 直接可以使用,无需 使用eval() 方法进行 转换.

因此返回的是对象直接调用,返回的是数组oop[0].name 就可一种调用

至于具体的细节部分需要自己注意

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值