2009-06-01 7 views
11

Question simple. Je dois faire une demande GET dans GWT qui redirige vers une nouvelle page, mais je ne peux pas trouver la bonne API.GWT - Création de requêtes GET

Y en a-t-il un? Je suis censé simplement former l'URL moi-même, puis faire Window.Location.replace?

(La raison est que je veux que ma page de recherche pour être liable)

Merci.

(et désolé pour ne pas faire ma question assez claire, au départ)

+0

Je suppose que ma question se résume à: Comment puis-je avoir plusieurs pages à l'aide GWT? – Chris

+0

que voulez-vous dire "plusieurs pages"? – Chii

Répondre

2

La redirection vers une nouvelle page est effectuée avec Window.Location.replace.

Plusieurs pages doivent être gérées à l'aide du mécanisme d'historique.

12

un coup d'oeil à 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

GWT ne vous empêche pas d'utiliser des servlets réguliers.

Vous pouvez déclarer une servlet dans votre fichier '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> 

et vous pouvez mettre en œuvre votre Servlet:

public class MyServlet extends HttpServlet { 

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

     // your code here 

} 

} 
1

Si vous ouvrez une fenêtre séparée, il est facile:

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

Sinon, utilisez RequestBuilder comme le suggère Silfverstrom.

0

Semblable à answer from ivo. Je peux le faire dans mon cadre todomvc GWT avec filter mapping au lieu de mappage de servlet dans le fichier 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> 
Questions connexes