Renders a <form> tag.

Any attribute that has no namespace and begins with param. is added as a hidden form element. The parameter name is the part of the attribute name following param..

When a parameter value is null it is not added. If the value is an Iterable, Iterator, Enumeration, or array, then each non-null element is coerced to String as a separate parameter in iteration order. Otherwise, the value itself is coerced to String for the parameter value.

Nested <ao:param> or <ao:params> tags will add parameters after any provided as attributes.

Tag Information

Tag Class: com.aoindustries.taglib.FormTag
TagExtraInfo Class: com.aoindustries.taglib.FormTagTEI
Body Content: scriptless
Display Name: None
Dynamic Attributes: true


Name Required Evaluation Type Description
method No Static String

The method used, must be either post or get. Defaults to get. A nested <ao:method> tag will override this value.

id No Runtime Object

The id of the element. A nested <ao:id> tag will override this value.

action No Static String

The action for the <form>. The action is modified in several ways to make things much easier to work with.

A nested <ao:action> tag will override this value.

In order to make relative paths predictable, relative paths are interpreted from the current JSP page, as long as all includes have been done via <ao:include> and any forward via <ao:forward>.

In order to keep paths app-relative, if starts with a /, the context path will be prepended to the path.

In order to simplify things behing URL mapping schemes, the action is always written starting with '/'. This avoids any need to include any <ao:base> tags.

URL rewriting is performed as needed via HttpServletResponse.encodeURL.

To support paths in different character sets, URL encoding is performed on every path element up to the last # or ? (first of the two), except for any character in the set {':', '/', ';', '#'}. To avoid ambiguity, any parameters or anchors in the URL must have been correctly encoded by the caller.

Any directly nested <ao:param> or <ao:params> tag will add parameters to the action.

Any URL parameters will not be in the action attribute, but instead will be rewritten into hidden form elements. This, in conjuction with response URL rewriting, can maintain state even through for posts.

target No Static Object

The target for the form. A nested <ao:target> tag will override this value.

enctype No Static Object

The enctype for the form. A nested <ao:enctype> tag will override this value.

style No Runtime Object

The CSS style for the form. A nested <ao:style> tag will override this value.

onsubmit No Static Object

A JavaScript onsubmit handler. A nested <ao:onsubmit> tag will override this value.


No Variables Defined.