Servlet 2.2/JSP 1.1
Struts is designed to work with the Servlet 2.2/JSP 1.1 specifications.
Servlet 2.3/JSP 1.2
*The Struts-EL taglibrary requires Servlet 2.3/JSP 1.2 in order to use the JSTL Expression language.
*There is an outstanding bug Bug 28983 regarding Servlet 2.3 methods which are not implemented in MultipartRequestWrapper.
Servlet 2.4/JSP 2.0
I have heard less reports about Struts with Servlet 2.4/JSP 2.0.
*There are more methods to HttpServletRequest which would be a problem similar to Bug 28983
*In bug Bug 28833 Kurtis Williams reports that the JSP 2.0 spec prohibits "flushing" from within a custom tag; Tiles users on JSP 2.0 must set the "flush" attribute to 'false' everywhere they use "get" and "insert" tags.