@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}

##### 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.