2016-04-30 28 views
1

HTMLフォームデータをJava Vertx Verticleに送信しようとしましたが、値としてnullを取得しました。Vertx:htmlからJavaへのデータ投稿

は、ここに私のコードです:

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

よろしく:

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()); 
     } 
    }); 
} 

そして、私のhtmlファイルのための

。ここで

+0

/src/main/java/io/vertx/example/web/form/Server.java)と同じようなユースケースです。これはおそらく役立ちます。 – alexvetter

+1

@alexvetterありがとうございましたrouter.route()。handler(BodyHandler.create());を追加することを忘れてしまいました。 – zackzulg

+1

回答を追加して問題の正解とすることを検討する必要があります。 – alexvetter

答えて

0

は[簡単な例](https://github.com/vert-x3/vertx-examples/blob/master/web-examplesがあり、多分それは助ける、私の解決策である

 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); 
    } 
関連する問題