2008-09-23 4 views
6

Google Web Toolkit (GWT) 애플리케이션이 있는데 링크를 걸면 동적으로 데이터를 검색하는 데 사용할 수있는 인수/매개 변수를 전달하려고합니다. 예 : 그것은 주식 차트 응용 프로그램이 있다면, 내 링크 기호를 포함하고 다음 GWT 애플 리케이션을 읽고 일부 주식 서비스에 요청을하고 싶습니다. 예 : http://myapp/gwt/StockChart?symbol=GOOG은 내 StockChart GWT 앱에 대한 링크 일 것이며 GOOG 주식에 대한 내 주식 정보 웹 서비스에 대한 요청을 만들 것입니다.GWT 앱을 매개 변수화하는 가장 좋은 방법은 무엇입니까?

지금까지 서버 측 코드를 사용하여 페이지에 자바 스크립트 변수를 추가 한 다음 JSNI (JavaScript Native Interface)를 사용하여 해당 변수를 읽었습니다.

호스트 HTML에서 : 다음 GWT 코드에서

<script type="text/javascript"> 
    var stockSymbol = '<%= request.getParameter("symbol") %>'; 
</script> 

: 예를 들어

public static native String getSymbol() /*-{ 
    return $wnd.stockSymbol; 
}-*/; 

(이 코드가 작동 실제 코드를 기반으로하고 있지만, 나는했습니다 이 질문에 맞게 수정하여 어딘가에있을 수도 있음)

그러나 항상 그렇지는 않습니다. 호스팅 된 모드 (특히 배열)에서 잘 작동하고 JSNI가 버전 1.4와 그 이전 버전에 없었기 때문에 다른/더 좋은 방법이 있다고 생각합니다. 당신이 요청에서 쿼리 문자열 매개 변수를 읽으려면

답변

10

당신이 com.google.gwt.user.client.Window 클래스를 사용할 수 있습니다

// returns whole query string 
public static String getQueryString() 
{ 
    return Window.Location.getQueryString(); 
} 

// returns specific parameter 
public static String getQueryString(String name) 
{ 
    return Window.Location.getParameter(name); 
} 
+0

GET 요청에서 작동합니다. POST 매개 변수는 어떻습니까? 예를 들어, 200 개의 주식 기호를 한꺼번에 요청하려면 URL에 모두 넣지 않으려 고합니다. –

+3

일부 매개 변수에 따라 작동하는 위젯을 만들 것을 제안합니다. POST/GET으로 페이지를 만들고, XML (RPC)로 보내면 빌드하고 모든 위젯을 만들기 위해 클라이언트에서 구문 분석하고 싶지는 않습니다. 그런 다음 위젯이 개별적으로 서버를 호출하여 데이터를 표시합니다. – Drejc

+0

추신 : 당신은 일을하는 GWT (RPC) 비동기 (AJAX) 방식에 익숙해 져야합니다. GET 및 POST는 전체 페이지를 다시로드 할 때 일부 전역 동작 (예 : 언어 선택)에 영향을주기 위해서만 사용해야합니다. – Drejc

1

또한에 좋은 옵션 '을 매개 변수화 '해시 값을 사용하는 GWT 애플리케이션

그래서, 대신

http://myapp/gwt/StockChart?symbol=GOOG 

사용

http://myapp/gwt/StockChart#symbol=GOOG 

GWT's History Mechanism을 통해 이러한 '매개 변수'에 대한 몇 가지 좋은 도구 지원이있다.

+0

리디렉션을 통해 해시 된 URL을 보낼 수 없습니다. –