Solucionado (ver solução)
Solucionado
(ver solução)
13
respostas

Não consigo chamar css dentro da JSP com spring

Olá galera por favor me ajudem, estou tentando chamar o css dentro da jsp e estou usando o framework spring mvc.... Tenho q fazer uma configuração na classe webappConfiguation? como chamo na pagina jsp?

13 respostas

Opa, fala aí! Tudo certinho? =)

Se eu entendi direito, seu CSS não está sendo aplicado, correto?

Usando o Spring MVC, você precisa liberar os recursos estáticos, caso contrário ele irá procurar por controllers mapeados para a requisição...

No seu arquivo de configurações do Spring (spring-context.xml), você pode adicionar a seguinte linha:

<mvc:default-servlet-handler />

Isso deve resolver para você. Pode testar e nos dar o feedback aqui, por favor? =)

Abraço e bons estudos,

Fábio

Fábio, obrigado pela ajuda.

no caso eu estou usando o maven-forge.. ele mecriou o pom.xml...é nele q tenho q colocar configuração? pq não sei como chamo o css no jsp também.

tenho minha classe de configuração certo, a "WebAppConfiguration" no java .... e aqui está o caminho da pasta "CSS" ... "webapp/resources/css"..ja criei arquivo .css e quero estilizar minha .jsp.

Opa!

Cuidado, o pom.xml é onde você coloca as dependências do seu projeto .Rs.

Se você está fazendo a configuração programaticamente, você pode mexer na sua WebAppConfiguration (acredito que toda a configuração do Spring esteja sendo feito nela)...

@Configuration
@EnableWebMvc
public class WebAppConfiguration extends WebMvcConfigurerAdapter {

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }
}

Pode testar e avisar aqui se funcionou? =)

Fábio

essa eu ja fiz fábio e na jsp....como faço para chamar?

Ah, certo. Achei que já tinha tentado... Na sua página (HTML ou JSP) você precisa colocar mais uma tag, dentro da <head>:

<link rel="stylesheet" href="...">

Dessa forma você cria um link entre a página e o CSS. O rel="stylesheet" é parte obrigatório, pois é você indicando qual a relação do arquivo que você quer linkar... Dentro do seu href você precisa passar o caminho para o seu CSS.

Consegue testar? =)

Fábio

Dessa forma eu também já fiz.. não deu...Andei pesquisando e parece q tem q configurar ou no XML ou por código ( como fiz) mas quando vou chamar essa forma não dá certo. Desculpa o transtorno Fábio

Você poderia postar sua classe de configuração do Spring, sua JSP e o erro que está acontecendo?

E fique tranquilo, não há problema algum! Vamos conversando até resolvermos isso para você! =)

Fábio

pronto ta ai o código fabio.

package br.com.cooperbuggy.system.conf;

import org.springframework.context.MessageSource;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;

import br.com.cooperbuggy.system.DAOS.BuggyDAO;

import br.com.cooperbuggy.system.controllers.HomeController;
import br.com.cooperbuggy.system.models.ListaDePasseio;

@Configuration
@EnableWebMvc
@ComponentScan(basePackageClasses={HomeController.class,BuggyDAO.class,ListaDePasseio.class})
public class AppWebConfiguration extends  WebMvcConfigurerAdapter {

    @Bean 
    public InternalResourceViewResolver internalResourceViewResolver(){
        InternalResourceViewResolver resolver =  new InternalResourceViewResolver();
        resolver.setPrefix("/WEB-INF/views/");
        resolver.setSuffix(".jsp");

        return resolver;
    }
    @Bean
    public MessageSource messageSource(){
        ReloadableResourceBundleMessageSource messageSource
                = new ReloadableResourceBundleMessageSource();
            messageSource.setBasename("/WEB-INF/message");
            messageSource.setDefaultEncoding("UTF-8");
            messageSource.setCacheSeconds(1);
            return messageSource;
    }


    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
         configurer.enable();
    }



}
<%@ 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://www.springframework.org/tags/form" prefix="form"%>
  <%@ taglib uri="http://www.springframework.org/tags" prefix="s" %>
  <%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<!DOCTYPE html>
<html>
<head>

<meta charset="UTF-8">
<title>Cadastro</title>
        <style type="text/css">
  @import url("../css/formCadastro.css");
</style>

</head>
<body>
    <header>
        <div class="container">
            <h1>Logo dos bugueiros</h1>

        </div>
    </header>
    <main class="secao container">
    <div class="secao cadastro">
        <h2>Cadastro do buggy</h2> 

    <form:form action="${s:mvcUrl('BC#grava').build() }" method="post" commandName="buggy">



        <div>
            <label>Número</label>
            <input type="text" name="numero"/>
            <form:errors path="numero"/>
        </div>
        <div>
            <label>Nome</label>
            <input type="text" name="nome"/>
            <form:errors path="nome"/>
        </div>
        <button type="submit" >Cadastrar</button>
        </form:form>
        </div>
    </main>
    <footer class="rodape">
            <p>Rodapé</p>

    </footer>
</body>
</html>

Galera ja tentei varias formas mais ainda não consegui, me ajudem por favor.

Opa! Tudo bem, cara? =)

Desculpe a demora... =(

Você conseguiu resolver seu problema? Ou ainda persiste?

Fábio

blz fabio, ainda estou com problemas, não consegui colocar o css na minha jsp.

solução!

Beleza!

Uma das coisas que eu percebi é que você está utilizando o seguinte código para tentar importar o CSS:

<style type="text/css">
    @import url("../css/formCadastro.css");
</style>

Ao invés de fazer isso, tenta utilizar a tag <link>, juntamente com a taglib core, assim:

<link rel="stylesheet" href="<c:url value='...' />">

Sacou? Como você já está importando essa taglib, basta utilizar essa tag <c:url>... E dentro do value, você precisa passar o caminho absoluto do seu CSS... =)

Depois de fazer isso, se não funcionar, posta a mensagem que aparece no console do seu browser aqui, por favor, se aparecer... =)

Fábio

Fábio, deu certo com a tag!!!muito obrigado parceiro.