【问题标题】:Do I have to include libs in every tile within Apache Tiles?我是否必须在 Apache Tiles 的每个图块中包含库?
【发布时间】:2010-10-06 20:31:35
【问题描述】:

我在我的网络应用程序中使用 Tiles。我在瓷砖中有一个标准布局(standard.jsp)。在standard.jsp 之上有很多包含,涉及标签库等。

让我们做一个简化的例子。

标准.jsp:

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/jsp/includes/include.jsp" %>

<html>

<head>
    <tiles:insertAttribute name="head" flush="false"/>
</head>

<body>
    <tiles:insertAttribute name="body" flush="false"/>
</body>    

</html>

body.jsp:

<div id="body-div">
    <p>Hello, <c:out value="${forname}" />!</p>
</div>

打印出来:

Hello, !

我想在图块中使用标签,但它不起作用。它只有在我将包含添加到 tile-jsp 时才有效。

body.jsp 包含:

<%@ include file="/WEB-INF/jsp/includes/include.jsp" %>

<div id="body-div">
    <p>Hello, <c:out value="${forname}" />!</p>
</div>

打印出来:

Hello, John!

有没有更好的方法来做到这一点,还是我必须将所有包含添加到每个使用的 jsp 中?

【问题讨论】:

    标签: java apache jakarta-ee web-applications tiles


    【解决方案1】:

    您不需要在每个磁贴中都包含所有包含,但磁贴中每个使用的标签库都必须明确包含在使用磁贴中。

    例如: 在您的示例中,使用 C JSTL 库的每个图块至少应包含 &lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&gt;

    【讨论】:

    • 感谢您的回复。如果我包含“所有包含”或仅包含相关内容,这是一个巨大的性能问题吗?
    • 如果这些包含基本上是 TLD,我认为这不是一个巨大的性能问题。如果它们包含 javascripts 库、css 等,您可以考虑将全局 include.jsp 拆分为更具体的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-21
    • 2014-11-10
    • 1970-01-01
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多