2014-01-24 3 views
2

Tapestry5.3을 사용하고 있습니다. 나는 test.tml과 test.java로 동적 인 웹 프로젝트 (prject name : test)를 가지고있다.HTML 태그없이 tml 페이지 출력하기

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)가 test2.tml와 test2.java과 함께합니다. 두 프로젝트 모두 내 tomcat 서버로 실행 중입니다.

test2.java에서 나는 test2.java에서 olny test.java 반환 값 (환영)을 얻기 위해 test.java에 http 연결을 만든다.

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

페이지의 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-resteasy

관련 문제