Webwork The framework provides a tag library decoupled from the view technology. In this section, we describe each tag in general terms, such as the attributes it supports, what the behaviors are, etcand so forth. Most tags are supported in all template languages (see JSP Tags, Velocity Tags, and FreeMarker Tags), but some are currently only specific to one language. Whenever a tag doesn't have complete support for every langaugelanguage, it will be is noted in on the tag's reference documentspage.
The types of tags can be broken in to two types: general generic and HTMLUI. Besides function and responsibility, the biggest difference between the general tags and the HTML tags is the fact two is that the HTML tags support templates and themes. In addition to the general tag reference, we also provide examples for using these generic tags in each of the support languages.
...
Be sure to read the Tag Syntax document
...
to learn how tag attribute syntax works.
General Tags
General tags are used for controlling the execution flow when your pages render. They also allow for data extraction from places other than your action or the value stack, such as Internationalization, JavaBeans, and including additional URLs or action executions.
- Control Tags provide control flow, such as if, else, and iterator.
- Data Tags allow for data manipulation or creation, such as bean, push, and i18n.
- (Note: old content may be salvageable from Common Tags)
HTML Tags
Unlike the general tags, the HTML tags do not provide much control structure or logic. Rather, they are focussed on using data, either from your action/value stack or from the Data Tags, and displaying it in rich and reusable HTML. All HTML tags have a unique behavior that they are driven by templates and themes. While the general tags simply output some content directly from the tag (if there is any content to output), the HTML tags defer to a template, often grouped together as a theme, to do the actual rendering.
This unique template support allows for you to use the HTML tags to build a rich set of reusable UI components that fit your exact requirements. Please read the Themes and Templates guide for more information on this powerful feature.
- Themes and Templates: a must-read explanation of how themes and templates are uses when rendering HTML tags.
- Form Tags provide all form-related HTML output, such as form, textfield, and select.
- Non Form Tags provide all non-form-related HTML output, such as a, div, and tabbedPanel.
Language Specific Tag Support
WebWork strives to support whatever environment you are most comfortable working in. That is why WebWork does not require a single template language, but instead allows for almost any common language to be used and even provides hooks for new languages. By default, almost every single tag is supported in JSP, Velocity, and FreeMarker. In each of these sections, you'll find examples and techniques for applying the generic tag reference toward your specific language or template choice.
Note |
---|
As of WebWork 2.2, FreeMarker has become the "standard" template language recommended by the WebWork team. There are many reasons for this decision, which can be found in various forums archives, but it pretty much boils down to this: FreeMarker provides a richer set of features than Velocity and is also more developer-friendly when errors occur (ie: the error reports are more accurate). JSP, while still used, is much more difficult for applications that demand a more modular approach, such as changing the templates at runtime or uploading packaged "modules" of WebWork actions and template files. |
FAQs
- Why do the form tags put table tags around controls?
- How can I put a String literal in a Javascript call, for instance in an onChange attribute?
- Why won't the 'if' tag evaluate a one char string?
- Why does FreeMarker complain that there's an error in my user-directive when I used JSP Tag?
- Can an action tag run another method apart from the default execute method?
- Why didn't my action tag get executed when I have validation errors?
- Why are request parameters appended to our hyperlinks?
Resources
- Creating a UI Component in Struts 2 (Mark Menard)
- Struts 2 Tags (Rose India)
Next: Generic
...