title: MissingServletRequestParameterException: Required String parameter is not present
body: <p>I have created a jsp page in a spring boot application that has got multiple forms in a single table. Each form having its own submit button. In each form I have kept an input element of type hidden with a value that I need to pass to the Controller class as a Request Parameter. So the form looks something like this:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;form action="getNode" method="get"&gt;
    &lt;input type="hidden" id="nodeId" value="${nodeid}"&gt;
    &lt;table&gt;
    &lt;!-- Displaying node related data --&gt;
    &lt;/table&gt;
  &lt;/form&gt;</code></pre>
  </div>
  </div>
  </p>
  
  <p>The controller class has the request mapped as follows:</p>
  
  <pre><code>@RequestMapping(value="/getNode", method=RequestMethod.GET)
  public String monitor(ModelMap model, @RequestParam("nodeId") String nodeId) 
  {
      model.put("selectedNodeId", nodeId);
      return "getNode";
  }
  </code></pre>
  
  <p>When I run the Spring application and click on the form button I get the following exception on the console:
  org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'nodeId' is not present</p>
  
  <p>I am now getting confused as to how the value from the form is passed to the controller class. I tried using @ModelAttribute too, but am getting the same error. I also tried using POST method but no success. I basically do not want to show the values submitted through the form in my browser URL. So looking for other options.</p>