Problema com VRaptor e Contexto[RESOLVIDO]

9 respostas
T

Boa noite a todos,

Estou com um problema que eu acho que estou comendo bronha, mas infelizmente não consigo descobrir.

Bom o que acontece é o seguinte quando estou acessando qualquer uri de minha aplicação web o sistema funciona belezinha, mas quando tento acessar uma específica parece que o contexto da aplicação muda, pois todos os arquivos que estavam sendo indereçado a um contexto, agora estão em outro.

Ex.: Quando acesso a página principal do meu sistema que +/- assim: http://localhost:8080/sape/principal funciona beleza, mas quando acesso: http://localhost:8080/sape/principal/pesquisa/{value}, todos os arquivo da página tentam acessar os diretórios: WEB-INF/jsp/principal/pesquisa/css , WEB-INF/jsp/principal/pesquisa/js, mas essas pastas estão em webapp/css e webapp/js, na raiz do contexto “sape”.

Alguém saberia me dizer o por que?

Obs.: Se faltou mais explicação só falar que digo mais a respeito.

9 Respostas

Rafael_Guerreiro

Voce esta usando a tag c:url para acessar as css e os js?

Pode mostrar as suas jsps?

T

Rafael Guerreiro:
Voce esta usando a tag c:url para acessar as css e os js?

Pode mostrar as suas jsps?

Claro.

View

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>

<!DOCTYPE html>
<!--[if lt IE 7]>      <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
<!--[if IE 7]>         <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
<!--[if IE 8]>         <html class="no-js lt-ie9"> <![endif]-->
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
    <head>
       <!-- <meta charset="utf-8">-->
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1; charset=ISO-8859-1">
        <title>Sape - Sistema de agendamento de postais e encomendas</title>
        <meta name="description" content="">
        <meta name="viewport" content="width=device-width">       

        <link rel="stylesheet" href="css/bootstrap.min.css">
        <style>
            body {
                padding-top: 60px;
                padding-bottom: 40px;
            }
        </style>
        <link rel="stylesheet" href="css/bootstrap-responsive.min.css">
        <link rel="stylesheet" href="css/main.css">

        <script src="js/vendor/modernizr-2.6.1-respond-1.1.0.min.js"></script>
    </head>
    <body>
        <!--[if lt IE 7]>
            <p class="chromeframe">You are using an outdated browser. <a href="http://browsehappy.com/">
            Upgrade your browser today</a> or <a href="http://www.google.com/chromeframe/?redirect=true">
            install Google Chrome Frame</a> to better experience this site.</p>
        <![endif]-->
       
		<!-- Header -->
		<c:import url="/header.jsp"/>
		<!-- Fim header -->

        <div class="container">

            <!-- Main hero unit for a primary marketing message or call to action -->
            <div class="hero-unit">
            	<div class="row-fluid">
            		<div class="span1 offset2_5">     
            			<img   img/correspondencia.png"/>"/&gt;
            		&lt;/div&gt;
            		&lt;div class="span6"&gt;
           				&lt;h2&gt;Consultar Correspondência&lt;/h2&gt;
            		&lt;/div&gt;       
				&lt;/div&gt;     
				&lt;div class="row-fluid"&gt;
            		&lt;div class="span4"&gt;            			
            		&lt;/div&gt;
            	&lt;/div&gt;      
				&lt;div class="row-fluid"&gt;
            		&lt;div class="span12"&gt;
            			&lt;div class="row-fluid"&gt;
            				
							&lt;div class="span7 span7_5 offset2" &gt;
								&lt;input type="text" onchange="javascript:pesquisar();" class="input-xxlarge input-search"  id="value" name="value" placeholder="Digite aqui sua pesquisa"&gt;																		
							&lt;/div&gt;
							&lt;div  class="span2"&gt;
								<a   >Pesquisar</a>
							&lt;/div&gt;
            			&lt;/div&gt;    								
            		&lt;/div&gt;
            	&lt;/div&gt;              
          	&lt;/div&gt;            

            &lt;hr&gt;            
		
		&lt;!-- Footer --&gt;
		&lt;c:import url="/footer.jsp"/&gt;
		&lt;!-- Fim Footer --&gt;
        &lt;/div&gt; &lt;!-- /container --&gt;


        &lt;c:import url="/scripts.jsp"/&gt;
        &lt;script&gt;
       		$(function(){
       			menuAtivo("menuInicio");
        	});
       		
       		function pesquisar(){
       			var contexto = '${pageContext.request.contextPath}';
       			$("#pesquisar").attr("href", contexto+"/pesquisar/"+ $("#value").val());
       		}
       		
        &lt;/script&gt;
    &lt;/body&gt;
&lt;/html&gt;

Página de pesquisa

&lt;%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&gt;

&lt;!DOCTYPE html&gt;
&lt;!--[if lt IE 7]&gt;      &lt;html class="no-js lt-ie9 lt-ie8 lt-ie7"&gt; &lt;![endif]--&gt;
&lt;!--[if IE 7]&gt;         &lt;html class="no-js lt-ie9 lt-ie8"&gt; &lt;![endif]--&gt;
&lt;!--[if IE 8]&gt;         &lt;html class="no-js lt-ie9"&gt; &lt;![endif]--&gt;
&lt;!--[if gt IE 8]&gt;&lt;!--&gt; &lt;html class="no-js"&gt; &lt;!--&lt;![endif]--&gt;
    &lt;head&gt;
       &lt;!-- &lt;meta charset="utf-8"&gt;--&gt;
        &lt;meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1; charset=utf-8"&gt;
        &lt;title&gt;Sape - Sistema de agendamento de postais e encomendas&lt;/title&gt;
        &lt;meta name="description" content=""&gt;
        &lt;meta name="viewport" content="width=device-width"&gt;       

        &lt;link rel="stylesheet" href="css/bootstrap.min.css"&gt;
        &lt;style&gt;
            body {
                padding-top: 60px;
                padding-bottom: 40px;
            }
        &lt;/style&gt;
        &lt;link rel="stylesheet" href="css/bootstrap-responsive.min.css"&gt;
        &lt;link rel="stylesheet" href="css/main.css"&gt;

        &lt;script src="js/vendor/modernizr-2.6.1-respond-1.1.0.min.js"&gt;&lt;/script&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;!--[if lt IE 7]&gt;
            &lt;p class="chromeframe"&gt;You are using an outdated browser. &lt;a href="http://browsehappy.com/"&gt;
            Upgrade your browser today&lt;/a&gt; or &lt;a href="http://www.google.com/chromeframe/?redirect=true"&gt;
            install Google Chrome Frame&lt;/a&gt; to better experience this site.&lt;/p&gt;
        &lt;![endif]--&gt;
       
		&lt;!-- Header --&gt;
		&lt;c:import url="/header.jsp"/&gt;
		&lt;!-- Fim header --&gt;

        &lt;div class="container"&gt;

            &lt;!-- Main hero unit for a primary marketing message or call to action --&gt;
            &lt;div class="hero-unit"&gt;
            	&lt;div class="row-fluid"&gt;
                	&lt;h3&gt;Bem vindo ao Sape.&lt;/h3&gt;
	                &lt;div class="row-fluid"&gt;
						&lt;div class="span4"&gt;
							<p>Aqui você fica sabendo se sua conta de luz, água ou qualquer outro tipo de correspondência foi 
							recebido pela portaria do seu condomínio.<p>
						&lt;/div&gt;	
		  
						&lt;div class="span6 offset1"&gt;
							&lt;form class="form-horizontal"&gt;
								&lt;div class="control-group"&gt;
									&lt;label class="control-label" for="inputEmail"&gt;Email&lt;/label&gt;
									&lt;div class="controls"&gt;
										&lt;input type="text" id="inputEmail" placeholder="Email"&gt;
									&lt;/div&gt;
								&lt;/div&gt;
								&lt;div class="control-group"&gt;
									&lt;label class="control-label" for="inputPassword"&gt;Password&lt;/label&gt;
									&lt;div class="controls"&gt;
										&lt;input type="password" id="inputPassword" placeholder="Password" class="input-medium"&gt;	
										&lt;button class="btn btn-small btn-primary" type="submit"&gt;Entrar&lt;/button&gt;
									&lt;/div&gt;
								&lt;/div&gt;
								&lt;div class="control-group"&gt;
									&lt;div class="controls"&gt;
										&lt;label class="checkbox"&gt;
											&lt;input type="checkbox"&gt; Lembrar-me - 
											<a >Esqueceu a senha?</a>
										&lt;/label&gt;	
									&lt;/div&gt;							
								&lt;/div&gt;
							&lt;/form&gt;
						&lt;/div&gt;
					&lt;/div&gt;	
				&lt;/div&gt;                     
          	&lt;/div&gt;            

            &lt;hr&gt;            
		
		&lt;!-- Footer --&gt;
		&lt;c:import url="/footer.jsp"/&gt;
		&lt;!-- Fim Footer --&gt;
        &lt;/div&gt; &lt;!-- /container --&gt;


        &lt;c:import url="/scripts.jsp"/&gt;
    &lt;/body&gt;
&lt;/html&gt;

Controle

package br.com.barros.sape.controller;

import br.com.caelum.vraptor.Get;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;

@Resource
public class PrincipalController {
	//private Result result;
	
	public PrincipalController(Result result){
		//this.result = result;
	}
	
	@Get("/principal")
	public void view(){}
	
	@Get("/pesquisar/{value}")
	public void search(String value){}
}
Rafael_Guerreiro

O problema éque voce precisa usar uma tag que vai colocar o contexto inical para voce:

<c:url value="/css/style.css" />
Voce vai precisar importar a taglib core antes de fazer isso…

Use isso toda vez que precisar colocar uma url, inclusive se for uma url para uma action sua.

T

Rafael Guerreiro:
O problema éque voce precisa usar uma tag que vai colocar o contexto inical para voce:

<c:url value="/css/style.css" />
Voce vai precisar importar a taglib core antes de fazer isso…

Use isso toda vez que precisar colocar uma url, inclusive se for uma url para uma action sua.

Nada feito.

Já alterei incluindo as tags, mas continua dando o mesmo erro.

Lucas_Cavalcanti

vc fez isso em todos os caminhos?

T

Sim lucas.

T

Sim lucas.

<link rel="stylesheet" href="css/bootstrap.min.css">
        <style>
            body {
                padding-top: 60px;
                padding-bottom: 40px;
            }
        </style>
        <link rel="stylesheet" href="<c:url value="css/bootstrap-responsive.min.css"/>">
        <link rel="stylesheet" href="<c:url value="css/main.css"/>">

        <script src="<c:url value="js/vendor/modernizr-2.6.1-respond-1.1.0.min.js"/>"></script>
Lucas_Cavalcanti

cuidado, todos os caminhos precisam começar com /

T

Lucas Valeu pela dica. Num sabia disso.

Obrigado.

Criado 8 de outubro de 2012
Ultima resposta 8 de out. de 2012
Respostas 9
Participantes 3