我正在使用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的欢迎。请给我你宝贵的建议或想法,以实现这一目标。
答案 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