title: In Springs Velocity binding macros (or JSP taglibrary) what is the reference to "command"?
body: <p>In Spring 3, if I have a form object like so:</p>
  
  <pre><code>public Person {
     String firstname = null;
     String lastname = null;
     // ... getter &amp; setters ...
  }
  </code></pre>
  
  <p>I now understand that I can receive this object as a parameter in my controller method and that Spring will bind the form parameters to the getters/setters of my Person object.</p>
  
  <p>Now I want to use springs binding macros (equivalent to the JSP taglib's for binding to form objects).</p>
  
  <p>All the docs I read say that there is a default "command" object (what this means I don't yet understand). It seems like I should be able to reference the Person object via a call such as:</p>
  
  <pre><code>#springBind("command.firstname")
  </code></pre>
  
  <p>But I don't understand where "command" comes from or what it means, and I don't understand what I need to do in my controller to make this "binding" possible. </p>
  
  <ul>
  <li>Do I need to add something to the model?</li>
  <li>Do I need to define for Spring that the Person object is the form object?</li>
  <li>Should I add &lt;"command", new Person()> to the model before rendering the page, or re-rendering the page after a form submission with errors?</li>
  <li>What went into the controller to make "command" meaningful to the macro?</li>
  </ul>
  
  <p>I'm confused here and just missing some really really really simple concept I think.</p>