Problema com visualização de cabeçalho e rodapé no JSPs

Boa tarde pessoal, estou com o seguinte problema… estou tentando visualisar o cabeçalho das minhas páginas e o rodapé, porém não estou conseguindo. Estou usando o Spring como meu controlador MVC, estou seguindo a apostila fj21 da caelum como um guia e nela temos que criar um diretório para nossas páginas jsp chamado de views e dentro dele outros diretórios que irão conter as páginas jsp das aplicações, tudo dentro de WebContent/WEB-INF. Como segue a imagem abaixo:

Tanto o cabeçalho e o rodapé só funcionam no formulario de login pois estão no mesmo nível de diretório, para funcionar nas outras páginas o cabeçalho e o rodapé tem que ser replicados nos outros diretórios. A primeira pergunta é o que devo fazer para o meu cabeçalho e meu rodapé aparecer nas outras páginas sem que eu tenha que replica-los nos outros diretórios?

Abaixo segue as configurações de cada:

cabeçalho.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
	<img alt="unifai" src="resources/imagens/unifai-logo.gif">
	<h2>Sistema de Gestão Empresarial Unifai</h2>
	<hr>
</body>
</html>

Página de Login

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Login</title>
</head>
<body>
	<c:import url="cabecalho.jsp"/>
	<h2>Página de Login</h2>
	<form action="efetuaLogin" method="post">
		Login: <input type="text" name="usuario"/><br/>
		Senha: <input type="password" name="senha"/><br/>
		<input type="submit" value="Entrar no Sistema"/>
	</form>
	<c:import url="rodape.jsp"/>
</body>
</html>

Se eu tentar acessar a listagem de empregados unsando o <c:import url=“cabecalho.jsp”/> ela me retorna o seguinte erro:

File "/WEB-INF/views/empregado/cabecalho.jsp" not found] with root cause

Dizendo que o cabeçalho não existe no diretório dos empregados.

Desde já obrigado a todos.

o web-inf está fora da visualização do seu aplicativo, por isso diz que não está encontrando (provavelmente)
Tente duas coisas:

alterar o caminho do cabeçalho para o caminho absoluto dele, ou seja:
url="/NomeDoSeuProjeto/WEB-INF/views/empregado/cabecalho.jsp"

o que eu creio que não funcionará, mas testar não mata kkkk

e mover sua pasta views para dentro das pastas visiveis do projeto e trabalhar com o nome absoluto também, já que é algo que vai em várias páginas:
url="/NomeDoSeuProjeto/resources/views/empregado/cabecalho.jsp"

esta segunda maneira deve resolver o seu problema.

Para você testar a visualização do seu web-inf no proejto, tente acessar o seu web.xml dentro do web-inf, você verá que dará como não existente, embora você saiba que ele está lá

/NomeDoSeuProjeto/WEB-INF/web.xml

espero que isso te ajude na solução do seu problema

Não funcionou… Mas mesmo assim muito obrigado!

Mas eu peguei um arquivo para testar e coloquei ele no mesmo nível, ou seja, diretamente no diretório views e funfou a parada… Porém, acabo perdendo a organização da estrutura de diretórios e neste caso todos os JSPs ficariam misturados… Aguém teria outra dica???

Obrigado!

estou com o mesmo problema.
vc conseguiu resolver isso cris?

Esquece, já resolvi.
É que obviamente o <%@taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%> deve ficar dentro de cada jsp e não no cabeçalho.jsp pois não tem como o jsp chamar a taglib se o cabeçalho.jsp nem foi carregado ainda.

Boa tarde André…

Eu resolvi ontem este problema colocando o seguinte caminho na url do cabecalho.jsp e no rodape.jsp

Cabeçalho

<c:import url="/WEB-INF/views/cabecalho.jsp"/> 

e

Rodapé

<c:import url="/WEB-INF/views/rodape.jsp"/>

dentro do jsp ficou assim:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Adiciona Empregados ao Sistema</title>
</head>
<body>
	<c:import url="/WEB-INF/views/cabecalho.jsp"/>
	<h3>Adiciona Funcionarios</h3>
	
	<form:errors path="empregado.matricula"/>
	<form action="adicionaEmpregado" method="post">
		Matricula <input type="text" name="matricula"><br>
		Nome <input type="text" name="nome"><br>
		Sobrenome <input type="text" name="sobrenome"><br>
		Salário <input type="text" name="salario"><br>
		Faixa Salarial <input type="text" name="faixaSalarioId"><br>
		Departamento ID <input type="text" name="deptoId"><br>
		Gerente ID <input type="text" name="gerenteId"><br>
		<input type="submit" value="Adicionar">
	</form>
	<c:import url="/WEB-INF/views/rodape.jsp"/>
</body>
</html>

Desde já agradeço a ajuda. Valeu!