Нужно ли включать libs в каждую плитку в Apache Tiles? - PullRequest
2 голосов
/ 11 февраля 2009

Я использую Tiles в своем веб-приложении. У меня стандартная раскладка (standard.jsp) внутри плитки используются. Вдобавок к стандартному .jsp есть много включений, касающихся библиотек тегов и тому подобного.

Давайте сделаем упрощенный пример.

standard.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, !

В плитках я хотел бы использовать теги, но это не работает. Это работает, только если я добавляю include к 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?

1 Ответ

1 голос
/ 11 февраля 2009

Вам не нужно, чтобы ВСЕ включения присутствовали в каждой из ваших плиток, но каждая использованная библиотека тегов в плитке должна быть специально включена в использование плитки.

например: В вашем примере каждый тайл, использующий библиотеку C JSTL, должен по крайней мере иметь <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> include

...