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.
Voce esta usando a tag c:url para acessar as css e os js?
Pode mostrar as suas jsps?
[quote=Rafael Guerreiro]Voce esta usando a tag c:url para acessar as css e os js?
Pode mostrar as suas jsps?[/quote]
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"/>"/>
</div>
<div class="span6">
<h2>Consultar Correspondência</h2>
</div>
</div>
<div class="row-fluid">
<div class="span4">
</div>
</div>
<div class="row-fluid">
<div class="span12">
<div class="row-fluid">
<div class="span7 span7_5 offset2" >
<input type="text" onchange="javascript:pesquisar();" class="input-xxlarge input-search" id="value" name="value" placeholder="Digite aqui sua pesquisa">
</div>
<div class="span2">
<a >Pesquisar</a>
</div>
</div>
</div>
</div>
</div>
<hr>
<!-- Footer -->
<c:import url="/footer.jsp"/>
<!-- Fim Footer -->
</div> <!-- /container -->
<c:import url="/scripts.jsp"/>
<script>
$(function(){
menuAtivo("menuInicio");
});
function pesquisar(){
var contexto = '${pageContext.request.contextPath}';
$("#pesquisar").attr("href", contexto+"/pesquisar/"+ $("#value").val());
}
</script>
</body>
</html>
Página de pesquisa
<%@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=utf-8">
<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">
<h3>Bem vindo ao Sape.</h3>
<div class="row-fluid">
<div class="span4">
<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>
</div>
<div class="span6 offset1">
<form class="form-horizontal">
<div class="control-group">
<label class="control-label" for="inputEmail">Email</label>
<div class="controls">
<input type="text" id="inputEmail" placeholder="Email">
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputPassword">Password</label>
<div class="controls">
<input type="password" id="inputPassword" placeholder="Password" class="input-medium">
<button class="btn btn-small btn-primary" type="submit">Entrar</button>
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox">
<input type="checkbox"> Lembrar-me -
<a >Esqueceu a senha?</a>
</label>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<hr>
<!-- Footer -->
<c:import url="/footer.jsp"/>
<!-- Fim Footer -->
</div> <!-- /container -->
<c:import url="/scripts.jsp"/>
</body>
</html>
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){}
}
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.
[quote=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.[/quote]
Nada feito.
Já alterei incluindo as tags, mas continua dando o mesmo erro.
vc fez isso em todos os caminhos?
Sim lucas.[/quote]
<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>
cuidado, todos os caminhos precisam começar com /
Lucas Valeu pela dica. Num sabia disso.
Obrigado.