2016-04-30 13 views
1

Ich habe versucht, HTML-Formulardaten an ein Java Vertex Verticle zu senden, aber ich bekomme null als Wert.Vertx: Daten von HTML nach Java senden

Hier ist mein Code:

public void start(Future<Void> startFuture) throws Exception { 
    Router router = Router.router(vertx); 

    router.route("/html/*").handler(StaticHandler.create().setWebRoot("html/")); 
    router.route("/html/*").handler(StaticHandler.create().setWebRoot("web/html")); 
    router.route("/js/*").handler(StaticHandler.create().setWebRoot("web/js")); 
    router.route("/css/*").handler(StaticHandler.create().setWebRoot("web/css")); 
    router.route("/fonts/*").handler(StaticHandler.create().setWebRoot("web/fonts")); 

    Route route = router.route(HttpMethod.POST, "/crypt/testForm/"); 
    route.handler(routingContext -> { 
    String productType = routingContext.request().getParam("test"); 
    System.out.println(productType); 
    }); 

    vertx.createHttpServer() 
    .requestHandler(router::accept) 
    .listen(8085, "localhost", res -> {      
     if (res.succeeded()) { 
     startFuture.complete();  
     } else { 
     startFuture.fail(res.cause()); 
     } 
    }); 
} 

Und für meine HTML-Datei:

<form action="/crypt/testForm" method="post"> 
    <input type ="text" id="test" name ="test"/> 
    <input type="submit"/> 
</form> 

Grüße.

+0

Es ist ein [einfaches Beispiel] (https://github.com/vert-x3/vertx-examples/blob/master/web-examples /src/main/java/io/vertx/example/web/form/Server.java) mit einem ähnlichen Anwendungsfall wie Ihres. Vielleicht hilft das. – alexvetter

+1

Danke @alexvetter Ich vergesse, router.route() hinzuzufügen. Handler (BodyHandler.create()); – zackzulg

+1

Sie sollten eine Antwort hinzufügen und sie als die richtige Antwort auf Ihr Problem markieren. – alexvetter

Antwort

0

Hier ist meine Lösung, vielleicht helfen sie,

 public void start() throws Exception { 

    Router router = Router.router(vertx); 
    router.route("/html/*").handler(StaticHandler.create().setWebRoot("html/"));  
    router.route("/html/*").handler(StaticHandler.create().setWebRoot("web/html")); 
    router.route("/js/*").handler(StaticHandler.create().setWebRoot("web/js")); 
    router.route("/css/*").handler(StaticHandler.create().setWebRoot("web/css")); 
    router.route("/fonts/*").handler(StaticHandler.create().setWebRoot("web/fonts")); 
    router.route("/crypt/test").handler(BodyHandler.create()); 
    router.post("/crypt/test").handler(ctx -> { 
      ctx.response().putHeader(HttpHeaders.CONTENT_TYPE, "text/plain"); 
      JsonArray js = new JsonArray(); 
      js.add(1); 
      js.add(5); 
      js.add(3); 
      ctx.response().end(js.toString()); 
    }); 

    vertx.createHttpServer().requestHandler(router::accept).listen(8085); 
    } 
Verwandte Themen