I think you can specify the inteceptor list at action level in struts.xml. Cheers, Josep
El 23 de abril de 2012 10:05, JOSE L MARTINEZ-AVIAL <jlm...@gmail.com>escribió: > Hi, > We are developing an web application that uses Struts2 + Tiles + JSP, > plus Dojo for the UI. The application uses the JSON plugin, since we do a > lot of interactions through AJAX calls using JSON. We are also building a > thick client that will only uses JSON to communicate with the server. It > will invocate Struts2 actions to retrieve information, and those actions > will provide a JSON result with the information solicited. Some of those > communications will download list of thinks (list of documents for the > user, for example). > > The thing is that we want to avoid duplications of code, so in order to > reuse those actions that produce JSON for the thick client, we are using > those same actions to get the same information for the browser. We have > made the pages compatible with that; the browser uses AJAX calls to call > those actions and show the retrieved information. But that also implies a > lot of HTTP connections to the server, which we would like to avoid. > > The way we have thought to avoid those extra communications is to use the > tag <s:action> on the JSP. That way the action is invoked inline from the > presentation layer, and the information(the JSON returned by the action) > incorporated on the JSP and sent to the browser, where the UI is created > with Dojo and shown to the user. > > The only problem I see is that the list of interceptors is fully executed > when calling those actions from the JSP. It makes sense, of course, but > that also add a lot of overhead I woiuld like to avoid. > > Does anyone see some obviouse flaw on this design? Is there a better way > to provide that JSON information without duplicating code and avoiding the > overhead? > > Thanks >