Java 如何在使用com.google.appengine.api.datastore.Text时保持格式和缩进

Java 如何在使用com.google.appengine.api.datastore.Text时保持格式和缩进,java,google-app-engine,formatting,Java,Google App Engine,Formatting,因此,我使用com.google.appengine.api.datastore.Text在我的GAE数据库中存储整篇文章(字符串超过500个字符) Google API说.getvalue()将给出文本变量的值 但是如果我插入一个已经缩进和格式化的字符串。。当我使用.getValue()函数并在网页上打印文本时,我丢失了格式和空格 这是函数的代码,该函数向客户端返回一个HTML字符串,然后客户端将该HTML字符串附加到一个div并显示它 public void getArticle(int a

因此,我使用
com.google.appengine.api.datastore.Text
在我的GAE数据库中存储整篇文章(字符串超过500个字符)

Google API说
.getvalue()
将给出文本变量的值

但是如果我插入一个已经缩进和格式化的字符串。。当我使用
.getValue()
函数并在网页上打印文本时,我丢失了格式和空格

这是函数的代码,该函数向客户端返回一个HTML字符串,然后客户端将该HTML字符串附加到一个div并显示它

public void getArticle(int articleId)
{
PersistenceManager pm = PMF.get().getPersistenceManager();
Articles a  = pm.getObjectById(Articles.class,(articleId));
String html = "";
html += "<p>" + (a.getArticle()).getValue() + "</p>";
return html; 
}
public-void-getArticle(int-articleId)
{
PersistenceManager pm=PMF.get().getPersistenceManager();
Articles a=pm.getObjectById(Articles.class,(articleId));
字符串html=“”;
html++=“”+(a.getArticle()).getValue()+”

”; 返回html; }
您需要将HTML包装在
标记中以保留格式

html += "<p><pre>" + (a.getArticle()).getValue() + "</pre></p>";

html++=”“+(a.getArticle()).getValue()+”

”;
您的问题是浏览器会删除多余的空格和换行符。这与数据存储无关,如果您直接将内容放到网页上,就会发生这种情况

您可能需要将文本转换为html进行表示(即用
替换换行符或将每个实际段落包装在标记中),或者如上所述使用保留格式的html元素

您可以通过标记或应用css样式的规则“空白:pre;”来实现这一点或“空白:前置行;”


您可以查看空白引用。在此页面上,您看到的行为在值“正常”下进行了描述。

不应发生这种情况-
Text
保存大量字符流,并且不会对其进行格式化。尝试编写一个测试方法,将一个大字符串保存为
文本
,然后将其读回并与原始字符串进行比较(使用
.equals()
)。