Estou fazendo alguns testes com Spring MVC e JSP Template e não consegui incluir o CSS, testei algumas formas, mas ele dá erro 404 (no console) para o arquivo .css
no head do pageTemplate ou no form-pessoa, mas não funcionou… Como posso incluir corretamente?
pageTemplate.jsp
<%@attributename="titulo"required="true"%><%@attributename="bodyClass"required="false"%><%@attributename="extraScripts"fragment="true"%><!DOCTYPE html><html><head><metacharset="UTF-8"/><title>${titulo } - Controle de Peso</title></head><bodyclass="${bodyClass}"><%@includefile="/WEB-INF/views/cabecalho.jsp"%><jsp:doBody/><jsp:invokefragment="extraScripts"></jsp:invoke><%@includefile="/WEB-INF/views/rodape.jsp"%></body></html>
form-pessoa.jsp
<%@pagelanguage="java"contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%><%@tagliburi="http://java.sun.com/jsp/jstl/core"prefix="c"%><%@tagliburi="http://www.springframework.org/tags"prefix="s"%><%@tagliburi="http://www.springframework.org/tags/form"prefix="form"%><%@taglibtagdir="/WEB-INF/tags"prefix="tags"%><c:urlvalue="/"var="contextPath"/><tags:pageTemplatetitulo="Cadastro de Pessoa"><jsp:body><h1>DadosPessoais</h1><form:formaction="enviaPessoa"method="post"><labelfor="nome">Nome:</label><inputtype="text"name="nome"required/><labelfor="dataNascimento">DataNascimento:</label><inputname="dataNascimento"type="date"required><fieldset><legend>Altura:</legend><inputtype="range"id="vol"name="vol"value="0"min="0.30"max="2.50"step="0.01"oninput="altura.value=value"onchange="altura.value=value"><inputtype="text"id="altura"name="altura"oninput="vol.value=value"onchange="vol.value=value"readonly></fieldset><fieldset><legend>Sexo:</legend><selectname="sexo"><optionselecteddisabled>Selecione...</option><optionvalue="Masculino">Masculino</option><optionvalue="Feminino">Feminino</option></select></fieldset><inputtype="submit"value="Enviar cadastro"/></form:form></jsp:body></tags:pageTemplate>
Acredito que isso esteja acontecendo pq sua pasta de recursos está dentro de WEB-INF. Essa pasta não aceita requisições. Experimente colocá-la na pasta webapp.
M
Moreira89
Obrigado!
FIz alguns testes, mas não funcionou, subi a pasta para debaixo do webapp, mesmo nível do WEB-INF.
Tentei incluir no pageTemplate com os seguintes apontamentos, nenhum funcionou:
O correto seria incluir no pageTemplate.tag mesmo, certo?
V
vicentingr
Tente agora adicionar essa linha no arquivo de configuraçao servlet.xml:
<resources mapping="/resources/**" location="/resources/">
M
Moreira891 like
Vou tentar… Obrigado!
Minha configuração está toda em classe Java, vou verificar como incluir esse mapeamento via código.
Obrigado!
M
Moreira891 like
@vicentingr Não achei como fazer essa mapeamento via código java, mas consegui fazer funcionar, não sei se é o jeito certo ou um tipo de gambi, mas deu certo incluindo no head do pageTemplate.jsp
<link rel="stylesheet" type="text/css" href="<c:url value="/webapp/resources/css/cabecalho.css"/>
O link estava a faltar uma barra invertida.
podes me mostrar qual é o caminho do resource ai no xml? talvez o erro esteja na declaração do resource ai no seu xml.
Olha só agora que notei um pequeno erro no caminho.
no href diz resources e o pasta está com nome de ressources.
e faltam um metodo na class AppWebConfiguration, este método se encarrega de verificar qual a pasta de resource onde está os arquivos meios externos.
E
Solucao aceita
eliseu22031 like
o methodo é como este, para registar o resource de sua aplicação…