【问题标题】:Google App Engine: Get source link to entity propertyGoogle App Engine:获取实体属性的源链接
【发布时间】:2014-05-04 17:54:13
【问题描述】:

我是 Google App Engine 的新手,所以我希望你能在这里帮助我。

我正在尝试获取指向实体属性的源链接(想要下载 json),但不知道如何。

这是代码:

<%-- //[START all]--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ page import="com.google.appengine.api.users.User" %>
<%@ page import="com.google.appengine.api.users.UserService" %>
<%@ page import="com.google.appengine.api.users.UserServiceFactory" %>
<%-- //[START imports]--%>
<%@ page import="com.google.appengine.api.datastore.DatastoreService" %>
<%@ page import="com.google.appengine.api.datastore.DatastoreServiceFactory" %>
<%@ page import="com.google.appengine.api.datastore.Entity" %>
<%@ page import="com.google.appengine.api.datastore.FetchOptions" %>
<%@ page import="com.google.appengine.api.datastore.Key" %>
<%@ page import="com.google.appengine.api.datastore.KeyFactory" %>
<%@ page import="com.google.appengine.api.datastore.Query" %>
<%-- //[END imports]--%>
<%@ page import="java.util.List" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

<html>
<head>
    <link type="text/css" rel="stylesheet" href="/stylesheets/main.css"/>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Mandatory Assigment 2</title>

</head>

<body>
    <h1>Mandatory Assignment 2</h1>

    <p>This page shows the CSV files uploaded</p>

    <h2>Uploaded CSV files</h2>
    <%-- //[START datastore]--%>
    <%
    DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
    Key guestbookKey = KeyFactory.createKey("Guestbook", "guestbookName");
    // Run an ancestor query to ensure we see the most up-to-date
    // view of the Greetings belonging to the selected Guestbook.
    Query query = new Query("Greeting", guestbookKey).addSort("date", Query.SortDirection.DESCENDING);
    List<Entity> greetings = datastore.prepare(query).asList(FetchOptions.Builder.withLimit(5));
    if (greetings.isEmpty()) {

    %>
    <p>There are no CSV files. Please refresh to reload</p>
    <%

    } else {
    %>
    <p>CSV files: </p>
    <%
    for (Entity greeting : greetings) {
        pageContext.setAttribute("greeting_content",
                greeting.getProperty("content"));
        if (greeting.getProperty("user") == null) {
    %>
    <p>An anonymous person wrote:</p>
    <%
    } else {
    pageContext.setAttribute("greeting_user",
            greeting.getProperty("user")); 
%>
    <p>json string: ${fn:escapeXml(greeting_content)}</a></a></p>
<%
    }
%>
<blockquote></blockquote>
<%
        }
    }
%>  

</body>
</html>
<%-- //[END all]--%>

“${fn:escapeXml(greeting_content)}”代码将 json 输出为字符串,但我希望能够像这样下载 json:

<p><a href="${fn:escapeXml(greeting_content)}">download JSON</a></a></p>

有人可以帮助我吗?我会很感激的!

【问题讨论】:

    标签: java json google-app-engine


    【解决方案1】:

    试试这个代码:

    <p><a href="${fn:escapeXml(greeting_content)}" download="name.json">download JSON</a></a></p>
    

    添加下载属性可以让内容以你指定的格式下载

    【讨论】:

    • 考虑添加一些解释来提高你的回答质量。
    • 对不起,添加下载属性可以使内容以您指定的格式下载。
    • 好的,谢谢。但这里有一个天真的问题:download="name.json" 怎么知道在哪里可以找到正确的 json?
    • @PæturMagnussen 在 href 中传递数据,并下载获取此数据并使用您指定的名称使其可下载,并在此名称中指定文件格式。
    • @PæturMagnussen ex: 如果你把 download="name.txt" 你下载的文件的内容是一样的,但格式不同。
    猜你喜欢
    • 2013-01-05
    • 2015-07-25
    • 2015-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多