Using Custom Actions

You might be wondering if we are stretching the bean model too far in the previous example. Perhaps. The CounterBean does more than hold information; it also has a non-conforming method for incrementing the counter. If we stray away from the purely bean model and use methods with arguments, this may force us to use scriptlets instead of the standard actions. That’s not necessarily bad, but in this case we can do better using a custom action instead of a bean and the standard actions.

A custom action is just like the standard actions we’ve used so far. It has a start tag, which may contain attributes, and an end tag. It can also have a body. Here’s what a custom action looks like:

<ora:incrementCounter scope="session"/>

The JSP specification defines how the standard set of actions can be extended with custom actions developed by Java programmers in the team or by a third party. A custom action is used in a JSP page in exactly the same way as the standard JSP actions you have seen in previous examples, such as <jsp:getProperty>. This makes them easier to use than beans with methods that must be invoked with scripting code, since you don’t have to worry about missing braces and semicolons and other syntax details. A custom action can do pretty much anything: it has access to all information about the request and can add content to the response body as well as set response headers.

If you’re a programmer, you should know that a custom action is basically a JavaBeans ...

Get Java Server Pages now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.