前台代码:

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<script src="/lib/go-js/assets/js/go.js"></script> <script id="code" th:inline="javascript">
/*<![CDATA[*/
function init() { var keynode, mapnode; keynode = eval([[${nodekey}]]);
mapnode = eval([[${nodemap}]]); console.log(keynode);
console.log(mapnode) if (window.goSamples) goSamples();
var $ = go.GraphObject.make;
myDiagram = $(go.Diagram, "myDiagramDiv",
{
initialContentAlignment: go.Spot.Center,
"undoManager.isEnabled": true
});
myDiagram.nodeTemplate =
$(go.Node, "Auto",
$(go.Shape, "RoundedRectangle", {strokeWidth: 1},
new go.Binding("fill", "color")),
$(go.TextBlock,
{margin: 20, width: 60, height: 20},
new go.Binding("text", "key"))
);
// myDiagram.model = new go.GraphLinksModel(
// [
// {key: "Alpha", color: "lightblue"},
// {key: "Beta", color: "orange"},
// {key: "Gamma", color: "lightgreen"},
// {key: "Delta", color: "pink"}
// ], [
// {from: "Alpha", to: "Beta"},
// {from: "Alpha", to: "Gamma"},
// {from: "Gamma", to: "Delta"},
// {from: "Delta", to: "Alpha"}
// ]
// ); myDiagram.model = new go.GraphLinksModel(keynode, mapnode);
} /*]]>*/
</script>
</head>
<body onload="init()">
<div id="sample">
<div id="myDiagramDiv" style="border: solid 1px black; width:800px; height:800px"></div>
</div>
</body>
</html>

后台代码:

package com.thunisoft.maybeemanagementcenter.controller;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.thunisoft.maybeemanagementcenter.pojo.LinkMap;
import com.thunisoft.maybeemanagementcenter.pojo.LinkNode;
import com.thunisoft.maybeemanagementcenter.util.JsonHelper;
import com.thunisoft.maybeemanagementcenter.util.JsonStrUltil;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import java.util.ArrayList;
import java.util.List; @Controller
@RequestMapping("/sleuth")
public class SleuthController { /**
*
*/
@GetMapping("/index")
public String index(Model model) { List<LinkNode> nodekey = new ArrayList<>();
nodekey.add(new LinkNode("a"));
nodekey.add(new LinkNode("b"));
nodekey.add(new LinkNode("c"));
nodekey.add(new LinkNode("d")); List<LinkMap> nodemap = new ArrayList<>();
nodemap.add(new LinkMap("a", "b"));
nodemap.add(new LinkMap("a", "c"));
nodemap.add(new LinkMap("c", "d"));
nodemap.add(new LinkMap("d", "a")); JsonHelper jm = new JsonHelper();
String nodekeyjson = null;
String nodemapjson = null;
try {
nodekeyjson = jm.toJson(nodekey);
nodemapjson = jm.toJson(nodemap);
} catch (JsonProcessingException e) {
e.printStackTrace();
} model.addAttribute("nodekey", nodekeyjson);
model.addAttribute("nodemap", nodemapjson); return "link";
}
}

pojo:

package com.thunisoft.maybeemanagementcenter.pojo;

/**
* 链路中节点
*/
public class LinkNode {
private String key;
private String color = "lightblue"; /*背景颜色,默认亮蓝色*/ public LinkNode(String key) {
this.key = key;
} public LinkNode(String key, String color) {
this.key = key;
this.color = color;
} public String getKey() {
return key;
} public void setKey(String key) {
this.key = key;
} public String getColor() {
return color;
} public void setColor(String color) {
this.color = color;
}
}
package com.thunisoft.maybeemanagementcenter.pojo;

/**
* 链路之间节点映射
*/
public class LinkMap {
private String from;
private String to; public LinkMap(String from, String to) {
this.from = from;
this.to = to;
} public String getFrom() {
return from;
} public void setFrom(String from) {
this.from = from;
} public String getTo() {
return to;
} public void setTo(String to) {
this.to = to;
}
}

Gojs简单例子的更多相关文章

  1. Hibernate4.2.4入门(一)——环境搭建和简单例子

    一.前言 发下牢骚,这段时间要做项目,又要学框架,搞得都没时间写笔记,但是觉得这知识学过还是要记录下.进入主题了 1.1.Hibernate简介 什么是Hibernate?Hibernate有什么用? ...

  2. AgileEAS.NET SOA 中间件平台.Net Socket通信框架-简单例子-实现简单的服务端客户端消息应答

    一.AgileEAS.NET SOA中间件Socket/Tcp框架介绍 在文章AgileEAS.NET SOA 中间件平台Socket/Tcp通信框架介绍一文之中我们对AgileEAS.NET SOA ...

  3. spring mvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方1.form的enctype=”multipart/form-data” 这个是上传文件必须的2.applicationConte ...

  4. ko 简单例子

    Knockout是在下面三个核心功能是建立起来的: 监控属性(Observables)和依赖跟踪(Dependency tracking) 声明式绑定(Declarative bindings) 模板 ...

  5. mysql定时任务简单例子

    mysql定时任务简单例子 ? 1 2 3 4 5 6 7 8 9     如果要每30秒执行以下语句:   [sql] update userinfo set endtime = now() WHE ...

  6. java socket编程开发简单例子 与 nio非阻塞通道

    基本socket编程 1.以下只是简单例子,没有用多线程处理,只能一发一收(由于scan.nextLine()线程会进入等待状态),使用时可以根据具体项目功能进行优化处理 2.以下代码使用了1.8新特 ...

  7. 一个简单例子:贫血模型or领域模型

    转:一个简单例子:贫血模型or领域模型 贫血模型 我们首先用贫血模型来实现.所谓贫血模型就是模型对象之间存在完整的关联(可能存在多余的关联),但是对象除了get和set方外外几乎就没有其它的方法,整个 ...

  8. [转] 3个学习Socket编程的简单例子:TCP Server/Client, Select

    以前都是采用ACE的编写网络应用,最近由于工作需要,需要直接只用socket接口编写CS的代码,重新学习这方面的知识,给出自己所用到的3个简单例子,都是拷贝别人的程序.如果你能完全理解这3个例子,估计 ...

  9. jsonp的简单例子

    jsonp的简单例子 index.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&q ...

随机推荐

  1. Spring Security教程(五):自定义过滤器从数据库从获取资源信息

    在之前的几篇security教程中,资源和所对应的权限都是在xml中进行配置的,也就在http标签中配置intercept-url,试想要是配置的对象不多,那还好,但是平常实际开发中都往往是非常多的资 ...

  2. vmware磁盘文件(vmdk)迁移

    原因:由于虚拟机安装时硬盘分配20G,随着虚拟机数据增多,磁盘占用也增多.磁盘总可用空间不能满足虚拟机数据增多.虽然虚拟机数据还没到20G,但磁盘总可用空间小,导致虚拟机继续运行时报空间不足. 解决办 ...

  3. Jackson(使用注解)

    jackson在实际应用中给我们提供了一系列注解,提高了开发的灵活性,下面介绍一下最常用的一些注解 @JsonIgnoreProperties此注解是类注解,作用是json序列化时将Java bean ...

  4. 【Android开发】Android应用程序目录结构

    原文:http://android.eoe.cn/topic/summary Android开发之旅:组件生命周期吴秦 Android开发之旅:HelloWorld项目的目录结构 * HelloWor ...

  5. tips: javascript 参数传递含有空格怎么办?

    js 方法传参有时候会遇到空格,空格会报错,因为它会默认空格后是元素 解决方法就是使用 escape 和 unescape html: var title = escape(rowObject.tit ...

  6. Atitti 住房部建设指南

    Atitti 住房部建设指南 1. 住房部建设的重要意义2 2. 房屋选址::首要核心要素,环境环境环境!!!2 2.1. 价格要素与地段..2 2.2. 与工作地距离,一般是半小时到一个半小时为好3 ...

  7. css3动画制作工具

    1.从chrome webstore下载 chrome应用商店安装地址 2.直接下载crx文件 如果无法访问到chrome的应用商城,可以选择下载app.crx文件,在chrome中打开chrome: ...

  8. # tail -f /var/log/zabbix/zabbix_agentd.log sudo: sorry, you must have a tty to run sudo

    /etc/sudoers 1)Defaults requiretty,修改为 #Defaults requiretty,表示不需要控制终端. 2)Defaults requiretty,修改为 Def ...

  9. [Windows Azure] Windows Azure Execution Models

    Windows Azure Execution Models Windows Azure provides different execution models for running applica ...

  10. 每日英语:Six Ways to Modernize Your Car

    AS AUTO MAKERS ADD far-out features to the latest cars at warp speed--everything from futuristic hea ...