I strongly urge that you keep your CV handy and up-to-date. If you really have no choice then you are standing on a small island and it's getting smaller all the time.
I will confess that I don't keep all of my systems running on the leading edge, but JBoss 5 went end-of-life in 2012 and Red Hat dropped all support for it over six months ago back in 2014. Any problems you have with JBoss 5 you would find hard to get any external support on even if you paid for it. As a matter of fact, even JBoss 6 will be in end-of-life in less than 2 weeks time.
Some people think that software is forever. That is not true. Software rots from the outside in. OS's become incompatible, hardware becomes incompatible, clients (browsers) become incompatible - and note especially what I said about Microsoft and IE 8 and RichFaces. You cannot pay for software as a one-time thing. It's an ongoing expense and the longer you put off keeping it maintained, the more it's going to cost when it finally collapses entirely, just like the roof on your house. Someone needs to decide whether it's worth spending time and money now or whether they want to do work on something that's likely to utterly collapse before the work has paid for itself. Unless they simply plan to ride that horse until it dies and then walk away from it. In which case I'd
definitely keep the CV handy.
And, having made that admonition, let me proceed on.
A 1xn table is very simple it's merely a table with a single column defined. The "n" is the variable number of rows in the backing model, where each row is a single
string value of the menu text. Or, if you prefer, the text plus useful (but undisplayed) data for when the menu is selected. You could just as easily do it with a 1-column panelgrid, but the dataTable allows you a more dynamic means of adding/removing rows without complex logic.
The table is simply a rectangular section of display. What else is a rectangular section of display? How about a ContextMenu?
So you can use this table as a ContextMenu by A) hiding it when the menu is invisible and B) using CSS positioning values to move it to wherever on the screen you want the menu to appear.
Actually, it's not uncommon to use an DIV and/or TABLE in exactly this manner in non-JSF webapps. RichFaces also uses this mechanism for its pop-up menus and dialog (ModalPanel) tags.