【发布时间】:2015-01-11 08:00:50
【问题描述】:
我想用存储在数据库中的数据/事件日期填充我在 web 视图上绘制的 FullCalendar。
我知道我必须通过 JSON 来执行此操作。问题是,我在网上看到的几乎所有文档都只停留在“如何将 JSON 转换为 Java 对象”,反之亦然。如何让转换后的 JSON/Java 对象在 HTML/Java 类中可见?
例如,假设我有一个从数据库中检索到的事件/约会对象列表。
List<FullCalendarData> events = new ArrayList();
FullCalendarData POJO 类:
@Component
@Entity
@Table(name = "ENTITY_OBJECT")
@Scope(proxyMode = ScopedProxyMode.TARGET_CLASS, value = "prototype")
@Inheritance(strategy = InheritanceType.JOINED)
public class FullCalendarData {
private String eventName;
private String startTime;
private String endTime;
public String getEventName() {
return eventName;
}
public void setEventName(String eventName) {
this.eventName = eventName;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
}
将List<FullCalendarData> events 从 Java 转换为 JSON:
Gson gson = new Gson();
String jsonAppointment = gson.toJson(events);
现在的问题是,我如何使jsonAppointment 在下面 HTML\ web 视图的 FullCalendar 中可见,或者换句话说,我如何访问和迭代 jsonAppointment 并使用它 (jsonAppointment)而不是下面的events 数组?
<!DOCTYPE html>
<html>
<head>
<link href='../fullcalendar/fullcalendar.css' rel='stylesheet' />
<link href='../fullcalendar/fullcalendar.print.css' rel='stylesheet' media='print' />
<script src='../lib/jquery.min.js'></script>
<script src='../lib/jquery-ui.custom.min.js'></script>
<script src='../fullcalendar/fullcalendar.min.js'></script>
<script>
$(document).ready(function() {
var date = new Date();
var d = date.getDate();
var m = date.getMonth();
var y = date.getFullYear();
$('#calendar').fullCalendar({
editable: true,
events: [
{
title: 'All Day Event',
start: new Date(y, m, 1)
},
{
id: 999,
title: 'Repeating Event',
start: new Date(y, m, d + 4, 16, 0),
allDay: false
}
]
});
});
</script>
</head>
<body>
<div id='calendar'></div>
</body>
</html>
调用我们的 webview:
public class FullCalendarWebView {
public VBox calendar() {
final WebView webView = new WebView();
final WebEngine engine = webView.getEngine();
engine.load("file:D:/standAloneDev//src/fc/fullcalendarwebview/fullcalendar-1.6.4/demos/selectable.html");
JSObject script = (JSObject) engine.executeScript("window");
script.setMember("eventClick", new JavaApp().javaApp());
VBox vb = new VBox();
vb.getChildren().add(webView);
return vb;
}
}
【问题讨论】:
-
@Vahid ...问题是,我如何使 jsonAppointment 在 HTML\ webview 的 FullCalendar 中可见.....是我上面问的
标签: java json webview javafx fullcalendar