Что делать с css для фрагмента JSP?

Я пишу свою первую динамическую веб-страницу с JSP. Прямо сейчас у меня есть работа index.JSP без заголовка. Я написал header.jspf который выглядит так:

<header>
<div id="head">
<img src="images/header/logo.png" alt="logo">
<h1>Rewards</h1>
</div>
</header>

Я включил заголовок в свой index.JSP с этой строкой: <%@ include file="header.jspf" %>сразу после тела. Но сейчас мне интересно. Где я должен разместить CSS для этого заголовка. Я могу положить его внутрь header.JSPF, но если я это сделаю, он вставляется в тело, когда страница "создается" сервером. Я могу поместить это в <head> тег внутри index.JSP страница, но тогда я должен включать CSS каждый раз, когда я использую этот фрагмент.

Есть ли ссылка на CSS header.jspf и каждый раз, когда я включаю заголовок, сервер автоматически знает, что он должен включить этот css для заголовка, без того, чтобы я каждый раз печатал в моем jsp, что мне нужен этот файл css для заголовка?

================================================== ================================

РЕДАКТИРОВАТЬ: @San Krish

Мой header.jspf будет выглядеть так, я думаю, если я включу мой CSS:

<link rel="stylesheet" type="text/css" href="cssFiles/header.css">
<header>
<div id="head">
<img src="images/header/logo.png" alt="logo">
<h1>Rewards</h1>
</div>
</header>

Проблема, однако, в том, что когда я это делаю, <link rel="stylesheet" type="text/css" href="cssFiles/header.css"> вставляется в body из моего index.jsp и это не правильный HTML.

================================================== ================================

РЕДАКТИРОВАТЬ 2: Я удалил jspf и создал файл header.jsp, который выглядит следующим образом (я скопировал весь контент, я не знаю, если он завершен)

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

<head>
<link rel="stylesheet" type="text/css" href="cssFiles/header.css">
</head>

<body>
<div id="head">
<img id="logo" src="images/header/logo.png" alt="logo">
<h1>Reward</h1>
</div>
</body>

Затем вместо включения jspf в страницу индекса я сделал: <%@ include file="header.jsp" %>CSS, однако, все еще включен в тело:(.

1 ответ

Есть ли ссылка на css на header.jspf, и каждый раз, когда я включаю заголовок, сервер автоматически знает, что должен включить этот css для заголовка

jspf файлы не компилируются сами по себе, поэтому их нужно выполнять с другими файлами jsp.

Вы можете включить общий css а также js файлы в common.jsp так что все остальные файлы, которые использует header.jspf потеряет бремя связывания общего css а также js файлы.

Обновить:

Я удалил jspf и создал файл header.jsp. Затем вместо включения jspf в индексную страницу я сделал: <% @ include file = "header.jsp"%> Однако CSS все еще включен в тело

Вы включили header.jsp с CSS в index.jsp это как вставка HTML-страницы в другую HTML-страницу, как показано ниже,

<!DOCTYPE html>
<html>
<head>
</head>
<body>
    <!-- when the app server interprets the jsp you have included it simply interprets like below -->
    <html>
<head>
<link rel="stylesheet" type="text/css" href="cssFiles/header.css">
</head>
<body>
    <div id="head">
        <img id="logo" src="images/header/logo.png" alt="logo">
            <h1>Reward</h1>
    </div>
</body>
<html>
<h1>Content of the index page</h1>
</body>
</html>

jsp содержит предварительно скомпилированный java-код, отличающийся от того, что он похож на html, поэтому вам не нужно беспокоиться о том, где он будет размещать CSS-файлы (работа браузеров заключается в рендеринге внешнего CSS в тег head, и это будет происходить нормально).

Выписка из документов,

Действие jsp: include вставляет дополнительные статические или динамические ресурсы на страницу во время запроса при отображении страницы. Укажите ресурс с относительным URL (либо относительным к странице, либо относительным к приложению).

Учить больше:

Другие вопросы по тегам