在java中的google glass示例应用程序中,我发现它正在通过JSP和servlet工作。所以我可以创建一个timelineitem并在其中设置文本
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException {
TimelineItem timelineItem = new TimelineItem();
timelineItem.setText("My Sample Project");
MirrorClient.insertTimelineItem(credential, timelineItem);
response.sendRedirect(WebUtil.buildUrl(request, "/second.jsp"));
}
从jsp页面我可以捕捉时间线并从中获取价值,比如
<%
if (timelineItems != null && !timelineItems.isEmpty()) {
for (TimelineItem timelineItem : timelineItems) {
%>
<div class="container">
<div class="row">
<div class="span4">
<h2>Timeline 2</h2>
<h3><%=StringEscapeUtils.escapeHtml4(timelineItem
.getText())%></h3>
</div>
</div>
</div>
<%
}
}
%>
所以现在我想做一些事情,如时间轴捆绑,设置背景图片,自定义菜单,语音命令等。
但是在高级作业教程中,我发现它使用了一些JSON格式,例如menuitem
HTTP/1.1 201 Created
Date: Tue, 25 Sep 2012 23:30:11 GMT
Content-Type: application/json
Content-Length: 303
{
"text": "Hello world",
"menuItems": [
{
"action": "REPLY"
}
]
}
那我怎么做这样的事情? 我应该在servlet中写什么以及如何从jsp页面获取价值? 我应该从servlet生成json并直接写入响应或其他内容
答案 0 :(得分:1)
您的代码示例中有一些内容有点误导和混淆,所以让我们分解它们。
虽然Java示例使用Servlet,因为它旨在作为服务器端操作,但它没有使用JSP作为Glass部分本身。这仅用于发回给用户的内容。
在第一个示例中,调用MirrorClient.insertTimelineItem()
执行将卡发送到Glass的工作。您通过在此项目上创建TimelineItem并设置字段来创建此卡片。
尽管大多数Mirror API文档都包含多种语言的示例,包括带有JSON的原始HTML(您引用的)和Java,但您并未指出第三个示例的来源。例如,参见https://developers.google.com/glass/v1/reference/timeline/insert#examples,它有一个更完整的Java示例,它既可以在卡上设置文本,也可以设置通知信息。对于该页面上提到的各种其他属性,还有其他的getter。
Mirror API Java Library的完整JavaDoc位于https://developers.google.com/resources/api-libraries/documentation/mirror/v1/java/latest/