博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二次调用action,使用json解析设备返回的数据
阅读量:4224 次
发布时间:2019-05-26

本文共 1807 字,大约阅读时间需要 6 分钟。

web服务器与某台设备通信,web服务器向设备发出http请求,设备返回文本数据,把返回的数据封装进ActionContext中,使用chain二次调用action
返回数据的格式(实际没有回车换行):
deviceName=device01
--separator--waveDataList[0].channelNo=1
--separator--waveDataList[0].channelData = "1111111,2222222,3333333,4444444"
--separator--waveDataList[1].channelNo="2"
--separator--waveDataList[1].channelData = "1111111,2222222,3333333,4444444"
--separator--waveDataList[2].channelNo="3"
--separator--waveDataList[2].channelData = "1111111,2222222,3333333,4444444"
1.向设备发送请求
2.设备返回数据
/** Action1*/ // 这里定义的和设备返回的数据必须对应 private String deviceName; private List
waveDataList; // 请求设备,并且接收设备返回的字符串 String receiveString = RemoteDeviceUtil.getRemoteDyWave(deviceInfo.getDiip(), deviceInfo.getDinetPort()); //分割数据 String[] array = receiveString.split(Const_val.C_STR_WAVE_DATA_SEPARATOR); // 把数据放进ActionContext if (null != array) {
ActionContext ctx = ActionContext.getContext(); Map
map1 = new HashMap
(); for (String string : array) {
String[] arr = string.split(Const_val.C_STR_EQ_SEPARATOR); map1.put(arr[0], arr[1]); } ctx.setParameters(map1); } ... ... /** Action2*/ JSONArray jsonData = JSONArray.fromObject(waveDataList); if (null != jsonData) {
// 这个json变量用于js画图 this.jsonData = jsonData.toString(); } else {
this.jsonData = ""; } ... ...
3.用于画图的jsp
$(document).ready(function(){
var jsonData = '
'; var obj = eval("(" + jsonData + ")"); $.each(obj, function(idx,item){ drawChart1(item.channelNo,"", item.channelData, "","","",item.channelNo); }); });
4.struts配置
getWarpDyWaveData
/JSP/user/UserMonitorDyWave.jsp
在ajax中如果只想获得json对象,可以返回一个如下的jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"	pageEncoding="GBK"%> <%@taglib prefix="s" uri="/struts-tags"%> 

转载地址:http://hkgmi.baihongyu.com/

你可能感兴趣的文章
Intellij Idea 工具在java文件中怎么避免 import .*包,以及import包顺序的问题
查看>>
IDEA Properties中文unicode转码问题
查看>>
Oracle中Blob转换成Clob
查看>>
Linux如何查看so中函数名
查看>>
自动管理代码的android.mk
查看>>
cocos2dx 2.2.6编译记录(1)
查看>>
makefile学习网站
查看>>
Lua教程:Lua调用C/C++函数(4)
查看>>
win下创建win32控制台工程,执行lua脚本
查看>>
cocos2dx android启动错误
查看>>
eclipse: android rename package name
查看>>
cocos2dx c++调用java思想
查看>>
lua math.ceil math.ceil
查看>>
cocos2dx CCNode计算node的大小
查看>>
cocos2dx 布局记录(1)
查看>>
lua 多行注释和取消多行注释
查看>>
缩放系数计算
查看>>
cocos2dx --- 按钮点击居中放大
查看>>
cocos2dx menu位置计算
查看>>
cocos2dx资源加载机制(同步/异步)
查看>>