获取没有HTML标记的html页面输出

时间:2014-01-24 04:48:11

标签: tapestry

我正在使用Tapestry5.3。我有一个带有test.tml和test.java的动态Web项目(项目名称:test)。

Test.tml

<!DOCTYPE html>
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd"
      xmlns:p="tapestry:parameter">

<head>
</head>
<body>
${stringValue}
</body>
</html>

Test.java

public String getGenerateJson() {
return "welcome";
}

我还有一个带有test2.tml和test2.java的动态Web项目(项目名称:test2)。这两个项目都在我的tomcat服务器上运行。

从test2.java,我为test.java建立一个http连接,以获取test2.java中的olny test.java返回值(welcome)。

Test2.java

final GetData data = new HttpGetData();
final String str = data.getContent("http://10.0.1.62:8080/Test/test");
System.out.println("String: " + str); 

输出:

字符串:

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head><link type="text/css" rel="stylesheet" href="/test/assets/1b4371c8cdb7af3/core/default.css"/><link type="text/css" rel="stylesheet" href="/test/assets/1b4371c8cdb7af3/jquery/themes/ui-lightness/jquery-ui-1.8.15.custom.css"/><meta content="Apache Tapestry Framework (version 5.3.1)" name="generator"/></head><body>
welcome
</body></html>

但我得到了那样的输出。

是否有机会受到test.java的欢迎。请给我你宝贵的建议或想法,以实现这一目标。

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是从您网页的onActivate事件中返回StreamResponse。您不需要模板(.tml)来执行此操作。

Object onActivate(EventContext context) {
   return new TextStreamResponse("text/plain", "welcome");
}

由于纯文本不是一个很好的解决方案,您可能希望改为使用JSON

Object onActivate(EventContext context) {
   JSONObject json = new JSONObject("greeting", "welcome");
   return new TextStreamResponse("application/json", json.toCompactString());
}

有关在tapestry中创建restful webservices的简单方法,您可能需要考虑tapestry-resteasy