~~ $Id$
~~
~~ Licensed to the Apache Software Foundation (ASF) under one
~~ or more contributor license agreements.  See the NOTICE file
~~ distributed with this work for additional information
~~ regarding copyright ownership.  The ASF licenses this file
~~ to you under the Apache License, Version 2.0 (the
~~ "License"); you may not use this file except in compliance
~~ with the License.  You may obtain a copy of the License at
~~
~~ http://www.apache.org/licenses/LICENSE-2.0
~~
~~ Unless required by applicable law or agreed to in writing,
~~ software distributed under the License is distributed on an
~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
~~ KIND, either express or implied.  See the License for the
~~ specific language governing permissions and limitations
~~ under the License.
~~
         -----------
         Integration with other Frameworks
         -----------

Integration with other web Frameworks

  Tiles can be integrated with other web frameworks. Usually this kind of
  integration is made through extensions/plugins to Tiles.
  
  * {{{http://struts.apache.org/1.x/index.html}Struts 1}}: Currently under
  development. A Struts 1 plugin is available in the SVN trunk, that presumably
  will be released along with Struts 1.4.
  
  * {{{http://struts.apache.org/2.x/docs/tiles-plugin.html}Struts 2}}: at the time of this 
  writing, the Struts 2 Tiles plugin still uses Tiles version 2.
  
  * {{{http://static.springsource.org/spring/docs/current/spring-framework-reference/html/view.html#view-tiles}Spring MVC}}: 
  At the time of this writing, Spring uses Tiles version 2.
  
  * {{{http://shale.apache.org/shale-tiles/index.html}Shale}}: An integration
  layer is provided, but it needs to be updated to the latest released version
  of Tiles.
