Struts, for the most part, is an implementation of the
Front Controller Pattern with some helpful form tags thrown in. It has nothing to do with the client.
I don't know that you can view a local file with JavaScript. Once upon a time, my employer had a Java
applet that had similar functionality (it calculated the size of an upload, estimated time and displayed progress). I assume most web controls that have a preview are done with Flash.
I'll toss this question to our JavaScript folks and see if they have any bright ideas.