Coloquei os arquivos no webapp/resources/css/ porém não carrega na página. Devo fazer mais alguma coisa, tipo alguma configuração no AppWebconfiguration?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Coloquei os arquivos no webapp/resources/css/ porém não carrega na página. Devo fazer mais alguma coisa, tipo alguma configuração no AppWebconfiguration?
Oi Danila, se você deixar o console do seu browser aberto na aba network, qual o erro que acontece? Talvez você tenha colocado o link errado na jsp...
Não alterei o código, apenas coloquei a pasta resources dentro da pasta webapp. Está certo?
Oi Danila, e como estão as páginas? Como eu disse, é importante que você veja o console do navegador para descobrir se os links das páginas estão errados ou até mesmo se você não esqueceu de fazer alguma alteração na jsp.
No console do browser aparece:
Failed to load resource: the server responded with a status of 404 () fontello-ie7.css
Failed to load resource: the server responded with a status of 404 () fonts.css
...
Precisamos de dois códigos. O código da jsp que está sendo acessada e o código da classe de configuração onde você defina a pasta dos resources para o Spring.
detalhe.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://www.springframework.org/tags" prefix="s" %> <!--s de spring -->
<!DOCTYPE html>
<html>
<head>
<c:url value="/" var="contextPath" />
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<link rel="icon"
href="//cdn.shopify.com/s/files/1/0155/7645/t/177/assets/favicon.ico?11981592617154272979"
type="image/ico" />
<link href="https://plus.googlecom/108540024862647200608"
rel="publisher"/>
<title>${poduto.titulo} - Casa do Código </title>
<link href="${contextPath}resources/css/cssbase-min.css"
rel="stylesheet" type="text/css" media="all" />
<link href='http://fonts.googleapis.com/css?family=Droid+Sans:400,700'
rel='stylesheet'/>
<link href="${contextPath}/resources/css/fonts.css"
rel="stylesheet" type="text/css" media="all" />
<link href="${contextPath}resources/css/fontello-ie7.css"
rel="stylesheet" type="text/css" media="all" />
<link href="${contextPath}resources/css/fontello-embedded.css"
rel="stylesheet" type="text/css" media="all" />
<link href="${contextPath}resources/css/fontello.css"
rel="stylesheet" type="text/css" media="all" />
<link href="${contextPath}resources/css/style.css"
rel="stylesheet" type="text/css" media="all" />
<link href="${contextPath}resources/css/layout-colors.css"
rel="stylesheet" type="text/css" media="all" />
<link href="${contextPath}resources/css/responsive-style.css"
rel="stylesheet" type="text/css" media="all" />
<link href="${contextPath}resources/css/guia-do-programador-style.css"
rel="stylesheet" type="text/css" media="all" />
<link href="${contextPath}resources/css/produtos.css"
rel="stylesheet" type="text/css" media="all" />
<link rel="canonical" href="http://www.casadocodigo.com.br/" />
</head>
<body class="produto">
<header id="layout-header">
<div class="clearfix container">
<a href="/" id="logo"></a>
<div id="header-content">
<nav id="main-nav">
<ul class="clearfix">
<li><a href="/carrinho" rel="nofollow">Carrinho(${carrinhoCompras.quantidade })</a></li><!-- manda a quantidade lá para o método getQuantidade de CarrinhoCompras -->
<li><a href="/pages/sobre-a-casa-do-codigo" rel="nofollow">Sobre Nós</a></li>
<li><a href="/pages/perguntas-frequentes" rel="nofollow">Perguntas Frequentes</a></li>
</ul>
</nav>
</div>
</div>
</header>
<nav class="categories-nav">
<ul class="container">
<li class="category"><a href="http://www.casadocodigo.com.br">Home</a></li>
<li class="category"><a href="/collections/livros-de-agile">Agile </a></li>
<li class="category"><a href="/collections/livros-de-front-end">Front End </a></li>
<li class="category"><a href="/collections/livros-de-games">Games </a></li>
<li class="category"><a href="/collections/livros-de-java">Java </a></li>
<li class="category"><a href="/collections/livros-de-mobile">Mobile </a></li>
<li class="category"><a href="/collections/livros-desenvolvimento-web"> Web </a></li>
<li class="category"><a href="/collections/outros"> Outros </a></li>
</ul>
</nav>
<article id="$produto.id">
<header id="product-highlight" class="clearfix">
<div id="product-overview" class="container">
<img width="280px" height="395px" src="http://cdn.shopify.com/s/files/1/0155/7645/products/css-eficiente-featured_large.png?v=1435245145" class="product-featured-image" />
<h1 class="product-title" itempropname="name">${produto.titulo }</h1>
<p class="product-author">
<span class="product-author-link"></span>
</p>
<p class="book-description">${produto.descricao} </p>
</div>
</header>
...
AppWebConfiguration
@EnableWebMvc //importa a configuração Spring MVC da WebMvcConfigurationSupport que é a classe principal que fornece a configuração por trás da configuração Java MVC.
@ComponentScan(basePackageClasses= {HomeController.class, ProdutoDAO.class, FileSaver.class, CarrinhoCompras.class}) //onde estão os controllers
//@ComponentScan é usadoa em classes de configuração(@Configuration) indicando quais pacotes ou classes devem ser scaneadas pelo Spring para que essa configuração funcione.
public class AppWebConfiguration {
@Bean //indicando que o Spring deve invocar aquele método e gerenciar o objeto retornado por ele.
public InternalResourceViewResolver internalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/views/");
resolver.setSuffix(".jsp");
resolver.setExposedContextBeanNames("carrinhoCompras"); //dispobinilizar os beans na jsp
return resolver;
}
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("/WEB-INF/messages");
messageSource.setDefaultEncoding("UTF-8");
messageSource.setCacheSeconds(1);
return messageSource;
}
@Bean
public FormattingConversionService mvcConversionService() {
DefaultFormattingConversionService conversionService = new DefaultFormattingConversionService();
DateFormatterRegistrar registrar = new DateFormatterRegistrar();
registrar.setFormatter(new DateFormatter("dd/MM/yyyy"));
registrar.registerFormatters(conversionService);//registrar serve para colocar a formatação para depois registrá-lo dentro do serviço conversionService
return conversionService;
}
@Bean
public MultipartResolver multipartResolver() { //para resolver o problema de envio de arquivos de multiplos formatos
return new StandardServletMultipartResolver();
}
}