Что делать с 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 (либо относительным к странице, либо относительным к приложению).
Учить больше: