{new} @HasFormData

This annotation can be used to detect the existence of a parameter when it's not set to a particular value.

- {@link oaj.http.annotation.HasFormData HasFormData}

##### Example:

@RestMethod(name=POST) public void doPost(@HasFormData("p1") boolean p1) {...}

This is functionally equivalent to the following code:

@RestMethod(name=POST) public void doPost(RestRequest req) { boolean p1 = req.hasFormData("p1"); ... }

The parameter type must be either boolean or {@link java.lang.Boolean}.

The following table shows the behavioral differences between @HasFormData and @FormData:

`Body content` | `@HasFormData("a")` | `@FormData("a")`
--- | --- | ---
`a=foo` | true | "foo"
`a=` | true | ""
`a` | true | null
`b=foo` | false | null

##### Important note concerning FORM posts

This annotation should not be combined with the {@link oaj.http.annotation.Body @Body} annotation or {@link oajr.RestRequest#getBody()} method for `application/x-www-form-urlencoded POST` posts, since it will trigger the underlying servlet API to parse the body content as key-value pairs, resulting in empty content.

The {@link oaj.http.annotation.HasQuery @HasQuery} annotation can be used to check for the existing of a URL parameter in the URL string without triggering the servlet to drain the body content.