0

我正在将我们的应用程序从 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)正文:显示静态文本

瓷砖.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>

布局main.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 一起使用 - 发现它们使用#attr.xxx 在 pagescope 中

我在我的实施中没有发现任何问题。标题属性正确呈现,但在属于 put-list-attribute 的属性上。

任何帮助深表感谢。

4

1 回答 1

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>
于 2013-03-22T20:00:05.790 回答