Actually, I'm not really sure if exploding WARs has that much benefit unless you intend to go in and modify the live copy of the WAR in the server, but in current releases of Tomcat, explosion is turned on by default.
Despite how it looks, there's nothing Struts-specific about this. If you copy a new WAR file into TOMCAT_HOME/webapps, Tomcat will ignore it as long as there's an exploded WAR in the same directory, even though the WARfile is newer.
If you delete the WAR directory and there's a WARfile, it "should" explode the WARfile when the next request comes in. If there is no WARfile and you have a Context file in conf/Catalina/localhost, Tomcat will delete the Context file
, which will undeploy the application.
There is a general problem with hot deployment in that a lot of times if you deploy a new set of
servlets, the init() method of the new servlet won't be (re)invoked. This can be a problem for systems like
Struts or JavaServerFaces, where config information is being read in and distilled. I've also had issues with ORM systems and hot-deployment for similar reasons.