If I were starting a project that required support for multiple devices, I'd use
JSF. JSF has good separation between the content being displayed and the way it's being displayed. By using different rendering kits, you can display the same control on two different devices. The only down side of JSF is that it's still a relatively new technology and you may not be able to find a rendering kit for the specific device you need to use. You may end up having to write some of this low level code yourself.
If your client has already made up their mind about using XML/XSL, then I guess there's not much you can do about it, but I'd really push for JSF if their minds are still open.
If you do go with XML/XSL, You can certainly handle the page navigation with Struts. You won't be able to use the Struts custom tags, though, or make much use of the ActionForm.