Problemas com CSS utilizando SPRING MVC

Boa Tarde Pessoal,

Estou com uma duvida que até hoje nao encontrei em nenhum tutorial ou página qualquer…
Queria saber como posso trabalhar com CSS e Spring MVC juntos.

Quando estou com Spring e quero chamar um documento CSS, da erro 404 (Nao encontrado), mas nao entendo o por que.

Segue o Codigo da pagina Home.jsp

<html>

<head>
	<title>Loja Virtual</title>
	<link rel="stylesheet" type="text/css" href="estilos.css"/>
	

</head>



<body>
	
	<div id="cabecalho">
		<div id="textoCabecalho">
			teste
		</div>
	</div>
		
	<div id="menuOpcoes">
		<ul>
			<li>
				<a >lista</a>
			</li>
			<li>
				<a >lista</a>
			</li>
			<li>
				<a >lista</a>
			</li>
			<li>
				<a >lista</a>
			</li>
			<li>
				<a >lista</a>
			</li>
			<li>
				<a >lista</a>
			</li>
			<li>
				<a >lista</a>
			</li>
		
		</ul>
	&lt;/div&gt;	
	
	
&lt;/body&gt;

&lt;/html&gt;

Codigo Controller Spring MVC

package controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
public class ServletControlador {


	@RequestMapping(&quot;/cadastroCliente&quot;)
	public String CadastroCliente() {
		System.out.println(&quot;Executando Cadastro de Cliente&quot;);
		
		
		
		
		
		System.out.println(&quot;Finalizando Cadastro de Cliente&quot;);
		return &quot;ok&quot;;
	}
	
	
}

Configuração WEB.XML


&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"&gt;
  &lt;display-name&gt;LojaVirtual&lt;/display-name&gt;
  &lt;welcome-file-list&gt;
    &lt;welcome-file&gt;index.html&lt;/welcome-file&gt;
    &lt;welcome-file&gt;index.htm&lt;/welcome-file&gt;
    &lt;welcome-file&gt;index.jsp&lt;/welcome-file&gt;
    &lt;welcome-file&gt;default.html&lt;/welcome-file&gt;
    &lt;welcome-file&gt;default.htm&lt;/welcome-file&gt;
    &lt;welcome-file&gt;default.jsp&lt;/welcome-file&gt;
  &lt;/welcome-file-list&gt;
  
  &lt;servlet&gt;
    &lt;servlet-name&gt;Spring MVC Dispatcher Servlet&lt;/servlet-name&gt;
    &lt;servlet-class&gt;
		org.springframework.web.servlet.DispatcherServlet
	&lt;/servlet-class&gt;
    &lt;init-param&gt;
      &lt;param-name&gt;contextConfigLocation&lt;/param-name&gt;
      &lt;param-value&gt;
			/WEB-INF/spring-context.xml
	  &lt;/param-value&gt;
    &lt;/init-param&gt;   
    &lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
  &lt;/servlet&gt;
  &lt;servlet-mapping&gt;
    &lt;servlet-name&gt;Spring MVC Dispatcher Servlet&lt;/servlet-name&gt;
    &lt;url-pattern&gt;/&lt;/url-pattern&gt;
  &lt;/servlet-mapping&gt;
  
  
&lt;/web-app&gt;

Configuração spring-context.xml


&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;

&lt;beans	xmlns="http://www.springframework.org/schema/beans"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns:context="http://www.springframework.org/schema/context"
		xmlns:mvc="http://www.springframework.org/schema/mvc"
		xsi:schemaLocation="http://www.springframework.org/schema/mvc
		http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
		http://www.springframework.org/schema/beans
		http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
		http://www.springframework.org/schema/context
		http://www.springframework.org/schema/context/spring-context-3.0.xsd"&gt;

	&lt;context:component-scan base-package="controller" /&gt;
	&lt;mvc:annotation-driven /&gt;

&lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt;
	&lt;property name="prefix" value="/WEB-INF/views/" /&gt;
	&lt;property name="suffix" value=".jsp"/&gt;
&lt;/bean&gt;



&lt;/beans&gt;

Documento CSS


*{
margin: 0;
padding: 0;

}


#cabecalho{
	background-image: url("img/logo.png");
	background-repeat:repeat-x;
	width: 1330px;
	height: 230px;

}

#textoCabecalho{
	font-size: 30;
	color: white;
	position: absolute;
	left: 35%;
	
}

#menuOpcoes{
	background-color: red;
	display: table;
	width: 100%;
}

#menuOpcoes ul{
	list-style: none;
}

#menuOpcoes ul li{
	display: inline;
	
}

#menuOpcoes ul li a{
	background-color: gray;
	color: red;
	font-size: 20;
	text-decoration: none;
	float: left;
	padding: 5px 10px;
	margin-left: 3px;
}

#menuOpcoes ul li a:HOVER{
	background-color: blue;
	color: black;
	font-size: 20;
	text-decoration: none;
}

OBS.:

O documento CSS esta na pasta raiz do projeto
A pagina OK.jsp esta em uma pasta chamada views dentro de WB-INF

Por favor… quem puder ajudar, vou agradecer muito!!!
Obrigado!

O browser está procurando o arquivo css em outro lugar

Quando você não indica nada ele vai acabar procurando no mesmo lugar da sua URL

Faça assim:

<link rel="stylesheet" type="text/css" href="${pageContext.servletContext.ContextPath}/estilos.css"/>

Isso vai fazer ele procurar o seu arquivo direto em ‘/seucontexto/estilos.css’

Cara… MUITO OBRIGADO POR TER RESPONDIDO!!!
OBRIGADO MESMO…

Coloquei essa linha de codigo no meu projeto, mas nao funcionou…
tenho que configurar alguma outra coisa ?
Falta algum jar ?

Ele esta lançando esse erro


29/11/2012 13:52:11 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'ContextPath' not found on type org.apache.catalina.core.ApplicationContextFacade
	at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:214)
	at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:191)
	at javax.el.BeanELResolver.property(BeanELResolver.java:300)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:81)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:54)
	at org.apache.el.parser.AstValue.getValue(AstValue.java:123)
	at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
	at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:938)
	at org.apache.jsp.home_jsp._jspService(home_jsp.java:59)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
	at java.lang.Thread.run(Unknown Source)

Adiciona o DefaultServlet a teu web.xml


  <servlet>  
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>  
    <servlet-class>  
        org.springframework.web.servlet.DispatcherServlet  
    </servlet-class>  
    <init-param>  
      <param-name>contextConfigLocation</param-name>  
      <param-value>  
            /WEB-INF/spring-context.xml  
      </param-value>  
    </init-param>     
    <load-on-startup>1</load-on-startup>  
  </servlet>  

 <servlet>  
    <servlet-name>default</servlet-name>  
    <servlet-class>  
        org.apache.catalina.servlets.DefaultServlet
    </servlet-class>  
    <load-on-startup>2</load-on-startup>  
  </servlet>  

  <servlet-mapping>  
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>  
    <url-pattern>/</url-pattern>  
  </servlet-mapping>  

  <servlet-mapping>  
    <servlet-name>default</servlet-name>  
    <url-pattern>/css/*</url-pattern>  
  </servlet-mapping>

 <servlet-mapping>  
    <servlet-name>default</servlet-name>  
    <url-pattern>/js/*</url-pattern>  
  </servlet-mapping>

Errei, é contextPath. A primeira letra é minuscula

Ele deu esse erro porque é case sensitive

OBRIGADO MAIS UMA VEZ PESSOAL…

Mas ainda nao funcionou… rs continua na mesma… erro 404.

Adicionei o Servlet Default como foi sugerido e também corrigi o “contextPath” para a primeira letra em minusculo.

Cria um diretorio chamado css e coloca o estilos.css dentro dele depois modifica alinha onde faz a chamada pra ficar assim

    <link rel="stylesheet" type="text/css" href="${pageContext.servletContext.contextPath}/css/estilos.css"/>  

ou se estiver utilizando as tags jstl

    <link rel="stylesheet" type="text/css" href='<c:url value="/css/estilos.css" />' />  

Seu arquivo se chama ‘estilos.css’ mesmo? Ele está no root mesmo?

Sim, Ele estava exatamente na raiz… agora coloquei em um pasta chamada “css”, mas nada de funcionar ainda.

Vou tentar com JSTL, mas é bem provavel que nao de certo… isso é muito estranho…

Segue o erro, quando vou Inspecionar no Google Chrome

Failed to load resource: the server responded with a status of 404 (Not Found) http://localhost:8080/LojaVirtual/css/estilos.css

Clico no “http://localhost:8080/LojaVirtual/css/estilos.css” ele abre no Chrome um documento CSS mas em branco.

Vai na pasta da aplicação no server e verifica se o arquivo está realmente lá

Sim, a minha aplicação esta la

O estilos.css está na pasta css no servidor?

Nao… me desculpa.
Na primeira vez q li. entendi que era pra olhar no Servers… pra veer se a aplicação estava la.

Agora eu fui na Pasta Servers do Projeto mesmo… e o que tem la é o seguinte

catalina.policy
catalina.properties
context.xml
server.xml
tomcat-users.xml
web.xml

[quote=Fernandoware13]Nao… me desculpa.
Na primeira vez q li. entendi que era pra olhar no Servers… pra veer se a aplicação estava la.

Agora eu fui na Pasta Servers do Projeto mesmo… e o que tem la é o seguinte

catalina.policy
catalina.properties
context.xml
server.xml
tomcat-users.xml
web.xml[/quote]

Ainda não, rs

Qual IDE vc usa?

A pasta que eu digo é a pasta onde o servidor implanta as aplicações, por exemplo o tomcat:

tomcat_home/webapps/SeuProjeto/css <- precisa ver se o arquivo estilos.css está nessa pasta aqui

Caso seja a sua IDE seja o Netbeans, vai na pasta do seu projeto e abre a pasta build/web, a pasta css deve estar aqui.

rsrs Vamos ver se é isso agora…

Entrei na pasta do TOMCAT
dentro de “webapps” tenho DOCS, MANAGER, ROOT. só

mas na raiz da pasta TOMCAT tem uma pasta chamada “apache-tomcat-6.0.35”
e dentro dela tem “webapps” tbm… que contem DOCS, EXEMPLES, HOST-MANAGER, MANAGER, ROOT.

e nada dos projetos
Isso na versao 6 do tomcat…

Dei uma olhada no Tomcat 7

tem uma pasta chamada “wtpwebapps” é onde ficam os projetos.

Mas eu estou utilizando o Tomcat 6. esse Tomcat 7 que falei era de outros projetinhos testes que estava fazendo.

Outra coisa estranha… é que estou utilizando a versão 6 e nao encontrei em nenhuma pasta os projetos que tenho no Eclipse.

Quanto ao eclipse vou ficar te devendo essa. Não sei como ele trabalha com projetos web.

Puts kssks Ferro entao. rsrs

Mas fmz Cara…

Muito Obrigado pela ajuda e a paciência…

BRIGADAO MESMO HEIM… VLWWWW

Como é que ta a estrutura de diretórios desse teu projeto!? na configuração me parece tudo certo, tais conseguindo acessar as tuas páginas ou só o css ta dando problema

Entao cara… esta tudo certo… o problema aparece quando coloco o Spring na Aplicação…
Nao entendo o pq acontece isso… que probleminha chato heim rs


Uploaded with ImageShack.us

Cara, dá uma lida nesse post, acho que resolve o seu problema