我正在将我们的应用程序从struts 1.3迁移到spring 3.1.4 mvc。在这个过程中,我也从瓷砖1.1升级到瓷砖2.2。 Jstl版本是1.1。使用Tiles 2.2,我遇到了使用put-list-attribute的问题。我试图展示一个简单的jsp页面,它应该遵循以下内容:
a)标题:包括一堆css(我评论它因为它不起作用。使用firebug我看到错误"NetworkError: 404 Not Found - http://localhost:8080/appname/%BeachStyle%7d" --- {eachStyle}
不知道%BeachStyle%来自哪里。
b)标题:包含标题 - Works fine
c)正文:显示静态文本
tiles.xml
<!DOCTYPE tiles-definitions PUBLIC
"-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN"
"http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
<definition name=".login" preparer="com.tiles.LoginController"
template="/tiles/layouts/layoutmain.jsp">
<put-attribute name="pageTitle" value="vivi test" />
<put-list-attribute name="baseStylesTest">
<add-attribute value="/styles/css/grids.css"/>
<add-attribute value="/styles/css/superfish.css"/>
<add-attribute value="/styles/css/styles.css"/>
</put-list-attribute>
</definition>
</tiles-definitions>
layoutmain.jsp
<%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<tiles:useAttribute id="stylesList" name="baseStylesTest" classname="java.util.List"/>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%-- <c:forEach var="eachStyle" items="${baseStylesTest}">
<link type="text/css" rel="stylesheet" href="<c:out value='${eachStyle}'/>" /> --%>
<title><tiles:insertAttribute name="pageTitle" /> </title>
</head>
<body>
Login page body
</body>
</html>
我尝试了以下内容: i)检查tiles2.2 dtd和示例以使用它 - 找到类似的用法 ii)通过互联网查看示例以及如何使用它 - 发现了类似的用法 iii)检查它如何与struts一起使用 - 发现它们在pagecope中使用#attr.xxx
我的实施中没有看到任何错误。 title属性正确呈现,但属于put-list-attribute的属性。
非常感谢任何帮助。
答案 0 :(得分:0)
找到解决方案。 JSTL没有工作,因为我宣称我的网络应用版本为2.5。这与我使用的tomcat5.5不兼容。将网络应用版本更改为2.4,一切都很好。
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
---
</web-app>