GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Problemas com CSS utilizando SPRING MVC


#1

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!


#2

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'


#3

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)

#4

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>

#5

Errei, é contextPath. A primeira letra é minuscula

Ele deu esse erro porque é case sensitive


#6

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.


#7

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" />' />

#8

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


#9

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.


#10

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


#11

Sim, a minha aplicação esta la


#12

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


#13

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


#14

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.


#15

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.


#16

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


#17

Puts kssks Ferro entao. rsrs

Mas fmz Cara..

Muito Obrigado pela ajuda e a paciência..

BRIGADAO MESMO HEIM.. VLWWWW


#18

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


#19

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


#20

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