GWT - выполнение запросов GET - PullRequest
11 голосов
/ 01 июня 2009

Простой вопрос. Мне нужно сделать запрос GET в GWT , который перенаправляет на новую страницу , но я не могу найти правильный API.

Есть ли один? Я должен сам сформировать URL, а затем выполнить Window.Location.replace ?

(причина в том, что я хочу, чтобы моя страница поиска была связываемой)

Спасибо.

(и извините за то, что сначала я не прояснил мой вопрос)

Ответы [ 5 ]

12 голосов
/ 01 июня 2009

взгляните на http://library.igcar.gov.in/readit2007/tutori/tools/gwt-windows-1.4.10/doc/html/com.google.gwt.http.client.html

public class GetExample implements EntryPoint {

    public static final int STATUS_CODE_OK = 200;

    public static void doGet(String url) {
        RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, url);

        try {
            Request response = builder.sendRequest(null, new RequestCallback() {
                public void onError(Request request, Throwable exception) {
                    // Code omitted for clarity
                }

                public void onResponseReceived(Request request, Response response) {
                    // Code omitted for clarity
                }
            });

        } catch (RequestException e) {
            // Code omitted for clarity
        }
    }

    public void onModuleLoad() {
        doGet("/");
    }
}
2 голосов
/ 21 июня 2009

Перенаправление на новую страницу осуществляется с помощью Window.Location.replace.

Несколько страниц должны обрабатываться с использованием механизма истории.

2 голосов
/ 01 июня 2009

GWT не запрещает вам использовать обычные сервлеты.

Вы можете объявить сервлет в вашем файле web.xml:

<servlet>
    <servlet-name>myServlet</servlet-name>
    <servlet-class>org.myapp.server.MyServlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>myServlet</servlet-name>
    <url-pattern>/myurl/*</url-pattern>
</servlet-mapping>

и затем вы можете реализовать свой сервлет:

public class MyServlet extends HttpServlet {

public void doGet(HttpServletRequest req, HttpServletResponse resp) throws 
        IOException {

      // your code here

}

}
1 голос
/ 01 июня 2009

Если вы открываете отдельное окно, это легко:

Window.open(url, windowName, "resizable=yes,scrollbars=yes,menubar=yes,location=yes,status=yes");

В противном случае используйте RequestBuilder, как рекомендует Сильфверстром.

0 голосов
/ 29 марта 2015

Аналогично ответу от ivo . Я могу сделать это в моем кадре GWT todomvc с filter mapping вместо отображения сервлета в web.xml файле.

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
              http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5"
         xmlns="http://java.sun.com/xml/ns/javaee">

  <filter>
    <filter-name>guiceFilter</filter-name>
    <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>guiceFilter</filter-name>
    <url-pattern>/myurl/*</url-pattern>
  </filter-mapping>

  <listener>
    <listener-class>com.todomvc.server.ToDoServerInjector</listener-class>
  </listener>

  <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>GwtGaeChannelToDo.html</welcome-file>
  </welcome-file-list>

</web-app>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...