将现有的Simple JSP Tiles 2.2 webapp转换为Tiles 3.0体系结构

时间:2013-06-11 16:54:05

标签: tiles apache-tiles tiles-3

我想创建一个简单的JSP tiles 3.0 Web应用程序。 我有一个页眉,页脚,菜单和一个加载jsps的正文。 我的应用程序在磁贴2.2中工作,但现在我正在尝试将其转换为磁贴3.0

我不允许使用框架。我使用“MyAnt generate.war”创建战争,然后使用 tomcat 进行部署。

这是我的图块定义文件(tiles.xml)

    <!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 3.0//EN"
       "http://tiles.apache.org/dtds/tiles-config_3_0.dtd">


<tiles-definitions>
  <definition name="page" template="/template.jsp">
    <put-attribute name="header" value="/defaultHeader.jsp" />
    <put-attribute name="menu" value="/defaultMenu.jsp" />
    <put-attribute name="body" value="/empty.jsp" />
    <put-attribute name="footer" value="/defaultFooter.jsp" />
  </definition>
  <definition name="servletPage" extends="page">
    <put-attribute name="body" value="/form.jsp" />
  </definition>

  <definition name="jspPage" extends="page">
    <put-attribute name="body" value="/hello.jsp" />
  </definition>
</tiles-definitions>

template.jsp

 <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<html>
  <body style="width:100%;height:100%" bgcolor="Blue">
    <table border="1" cellspacing="0" cellpadding="0" style="width:100%;height:100%">
      <tr> <td colspan="2"><tiles:insertAttribute name="header" /> </td> </tr>
      <tr> <td>  <tiles:insertAttribute name="menu" /> </td>
           <td>  <tiles:insertAttribute name="body" /> </td>  </tr>
      <tr> <td colspan="2"> <tiles:insertAttribute name="footer" /> </td> </tr>
    </table>
  </body>
</html>

的index.jsp

 <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<tiles:insertDefinition name="page" />

的web.xml

<?xml version="1.0" encoding="ISO-8859-1"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
     version="2.5">
<servlet>
    <servlet-name>tiles</servlet-name>
    <servlet-class>org.apache.tiles.web.startup.TilesServlet</servlet-class>
    <init-param>
      <param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
      <param-value>/WEB-INF/tiles.xml</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
</servlet>
<welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>

这是我在浏览器中遇到的错误

HTTP Status 500 - An exception occurred processing JSP page /index.jsp at line 2 
org.apache.jasper.JasperException: An exception occurred processing JSP page /index.jsp at line 2

1: <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
2: <tiles:insertDefinition name="page" />

任何人都可以帮我解决一下吗?我很确定它在web.xml中的问题,但我无法弄清楚我该怎么办。

1 个答案:

答案 0 :(得分:0)

使用Struts,该类是:org.apache.tiles.web.startup.TilesServlet 没有Struts,该类是:org.apache.struts.tiles.TilesServlet