Dave Johnson on open web technologies, social software and Java
If you need to develop custom JSP tags, you should take a look at Gregory Gerard's article on Accelerating JSP Tag Development with Jakarta Velocity. What a cool idea.
Here is the deal. Typically, in JSP tag development folks use out.println() calls to emit HTML. This can result in messy and hard to maintain code. Gregory describes a better approach: use Velocity templates to emit the HTML. I'm using this technique to develop a nice configurable Amazon-style tabbed-menu tag for the Roller editor UI (but it will be generic enough for use in any JSP or Struts application).