2016-04-30 3 views
1

Я попытался отправить данные формы HTML в Вершину Java Vertxle, но получаю null как значение.Vertx: Опубликовать данные из html в Java

Вот мой код:

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 файла:

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

С уважением.

+0

Существует [Простой пример] (https://github.com/vert-x3/vertx-examples/blob/master/web-examples /src/main/java/io/vertx/example/web/form/Server.java) с аналогичным вариантом использования, как ваш. Возможно, это помогает. – alexvetter

+1

Спасибо @alexvetter Я забыл добавить router.route(). Handler (BodyHandler.create()); – zackzulg

+1

Вам следует рассмотреть вопрос о добавлении ответа и пометить его как правильный ответ на вашу проблему. – alexvetter

ответ

0

Вот мое решение, может быть, это поможет,

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