문제

GWT (Google Web Toolkit) 응용 프로그램이 있으며 링크 할 때 데이터를 동적으로 검색하는 데 사용할 수있는 인수/매개 변수를 전달하고 싶습니다. 예를 들어 주식 차트 응용 프로그램 인 경우 링크에 기호를 포함하고 GWT 앱에이를 읽고 일부 주식 서비스를 요청하게하려고합니다. 예를 들어 http : // myapp/gwt/stockchart? symbol = goog 내 Stockchart GWT 앱에 대한 링크가 될 것이며 Goog 주식에 대한 내 Stock Info Web Service에 요청할 것입니다.

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

예를 들어:

호스트 HTML에서 :

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

GWT 코드에서 :

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

(이 코드는 작동하는 실제 코드를 기반으로하지만이 질문에 대해 수정하여 어딘가에 멍청 할 수 있습니다).

그러나 이것은 호스팅 모드 (특히 배열의 경우)에서 항상 잘 작동하지는 않으며 JSNI가 버전 1.4와 이전에 없었기 때문에 또 다른/더 나은 방법이 있다고 생각합니다.

도움이 되었습니까?

해결책

요청에서 쿼리 문자열 매개 변수를 읽으려면 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);
}   

다른 팁

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

그래서 대신

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

사용

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

이러한 '매개 변수'에 대한 훌륭한 툴링 지원이 있습니다. GWT의 역사 메커니즘.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top