Cage traps are good, I usually put those after a long line of weapon traps. If you aren't afraid to delve into the realm of too easy, try danger rooms. They can be simple, a 3x3 room with a bed, put a spear trap in the middle, use training spears (unless you wanna skewer your dorfs lol). One works fine but this is DF so the more of something good the gooder it is, so 10 is the best you'll get in terms of training.
Set them all to a lever in your meeting hall, set it to be pulled on repeat and then forget. Within minutes youll have legendary fighters.
Also drawbridges are a good addition, or a substitute to fighting. Make it over a pit. Moats with water aren't suggested as water borne enemies may simply swim across, but youll eventually have flying enemies.. so you might as well have there be a good gate comprised of floodgates on your side of the pit/moat. If its empty make it a few z-levels deep and put spear traps with real spears at the bottom, so if for some reason youre fighting on the bridge or have marksdwarves firing onto it your enemy has the capability of dodging off into some spears and being turned into goblin shish kebab.
Inversely, this can happen to your dorfs, so be wary.