title: Handle form submission with Vert.X
body: <p>I have a very simple form submission page for testing purpose</p>
  <pre><code>&lt;!DOCTYPE HTML&gt;
  &lt;html lang=&quot;en&quot;&gt;
  &lt;head&gt;
      &lt;meta charset=&quot;UTF-8&quot;&gt;
      &lt;title&gt;Title&lt;/title&gt;
  &lt;/head&gt;
  &lt;body&gt;
      &lt;form action=&quot;http://localhost:8080/queries&quot; method=&quot;post&quot;&gt;
          &lt;input type=&quot;checkbox&quot; id=&quot;includeOtherPMs&quot;/&gt; include other PMs
          &lt;input type=&quot;checkbox&quot; id=&quot;includePreCanned&quot;/&gt; include pre-canned
          &lt;input type=&quot;search&quot; id=&quot;keyword&quot;&gt;
          &lt;input type=&quot;submit&quot; id=&quot;listQueries&quot; value=&quot;filter&quot;/&gt;
      &lt;/form&gt;
  &lt;/body&gt;
  &lt;/html&gt;
  </code></pre>
  <p>Also, I have a Vert.x HTTP server to handle the request:</p>
  <pre><code>Router router = Router.router(vertx);
  router.route().handler(BodyHandler.create());
  router.route(&quot;/queries&quot;).handler(new QueriesHandler());
  vertx.createHttpServer().requestHandler(router).listen(8080);
  </code></pre>
  <p>But in the QueriesHandler, I tries request header, form attributes, query parameters from both &quot;get&quot; and &quot;post&quot; method of the form submission, but none of them could get any value.</p>
  <pre><code>public class QueriesHandler implements Handler&lt;RoutingContext&gt; {
      @Override
      public void handle(RoutingContext routingContext) {
          MultiMap headers = routingContext.request().headers();
          MultiMap params = routingContext.request().formAttributes();
          MultiMap qp = routingContext.queryParams();
      }
  </code></pre>
  <p>Does anyone know what's wrong with my code?</p>