This is a vague and grand question but hopefully I can explain it with as little concrete examples as possible.
We recently switched to Spring MVC for our applicatio
What you are describing feels a bit like portal / portlets functionality (JSR-286) => i.e. application (portal) generating webpages which are composed of content generated by other embedded applications (portlets). Portals are using INCLUDE dispatch (which is equivalent to ) to provide JSR-286 functionality. So from this point of view, it is a good idea to use to provide reusable content blocks, each with its own MVC lifecycle (although sharing the same request attribute namespace)...
Also note that if you have just a simple fragment, which you would like to reuse in between JSPs, a simple <%@include file="menu.jspf" %> might be a better fit.
And I also feel that JSP tag functionality should be mentioned... making reusable content as a JSP TAG file (/WEB-INF/tags/[taglib-folder/]*.tag) can provide some advanced layout features. For even more advanced functionalities, you can implement Java based tag library.
To illustrate how I am using custom TAGs and include directive in one project, the following is a single JSP view:
<%@ include file="/WEB-INF/taglib.jspf" %>
<%@ include file="test-detail.jspf" %>
We didn't have use-case, where INCLUDE dispatch (i.e. ) would be needed.