eso puede deberse a como struts está generando el código html, si no anida la tabla dentro del div es obvio que no estará sujeto a ella.
Código HTML:
Ver original<table><!--obviamente esta table es independiente del div anterior--></table> <table><!--esta table si es dependiente del div padre, a menos que le aplique CSS position:absolute;--></table>
te recuerdo que struts o mejor dicho java se ejecuta en el servidor, lo que hace es devolver código HTML, los tag libs simplemente son
helpers que te ayudan a generar un HTML limpio, pero
nunca reemplazan el html original, ellos generan HTML.
otro aspecto importante es el CSS de cada elemento, el mismo puede cambiar por completo el comportamiento del HTML resultante, por ejemplo si tengo el table dentro del div, pero le aplico posición absoluta, éste se hará independiente del div, todo es parte de conocer el funcionamiento de
HTML y CSS