【发布时间】:2013-06-11 16:54:04
【问题描述】:
我想创建一个简单的 JSP 瓦片 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>
模板.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 中,但我不知道该怎么办。
【问题讨论】:
-
tile2和tile3几乎没有区别,tile3当然有扩展功能……不知道你为什么提出不能使用web框架,听起来很傻要求,但与问题无关。你用的是maven吗?可能缺少依赖项...您有什么理由不在 web.xml 中使用“org.apache.tiles.extras.complete.CompleteAutoloadTilesListener”?
-
index.jsp 试图做什么? tiles:insertDefinition 用于创建新定义¹,但您已经在 tiles.xml 中定义了“页面”定义¹tiles.apache.org/framework/tiles-jsp/…
-
I'm not allowed to use frameworks-- 你意识到 Tiles 本身就是一个框架,对吧?I create the war using "MyAnt generate.war"-- 这只是你构建脚本中任务的名称,对其他人没有意义。
标签: tiles apache-tiles tiles-3