Vraptor + jstl

13 respostas
A

Bom dia pessoal!

Estou trabalhando com vraptor mais estou com uma dúvida simples:

dentro da minha pagina index.jsp como eu faço para incluir o topo.jsp e do rodape.jsp via jstl no index.jsp?

o topo.jsp e o rodape.jsp estão dentro da pasta jsp->principal junto com o index.jsp

eu tento dentro do index.jsp dar um import via jstl(<c:import url="<c:url value=’/principal/topo’ />" />) mais da erro

alguem pode me ajudar?

fonte:

PrincipalController.java

package principal;

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

@Resource
public class PrincipalController {
	
	private final Result result;
	
	public PrincipalController(Result result){		
		this.result = result;
	}
	
	@Path("/principal")
	public void index(){		

	}
	
	public void topo(){
		
	}
	
	public void rodape(){
		
	}

}

index.jsp

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

<!-- nao esta funcionando -->
<c:import url="<c:url value='/principal/topo'" />

ola

<c:import url="<c:url value='/principal/rodape'" />

Valeu.

13 Respostas

edu_merckx

Qual é o erro?

<c:import url="<c:url value="/principal/topo"/>" />

tá faltando fechar o <c:url/>

A

edu_merckx:
Qual é o erro?

<c:import url="<c:url value="/principal/topo"/>" />

tá faltando fechar o <c:url/>

Valeu edu_merckx foi uma falta de atenção mais continua dando erro segue abaixo o index.jsp corrigido e o erro:

index.jsp

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

<c:import url="<c:url value="/principal/topo"/>" />

ola

<c:import url="<c:url value="/principal/rodape"/>" />

erro

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

br.com.caelum.vraptor.view.ResultException: org.apache.jasper.JasperException: /WEB-INF/jsp/principal/index.jsp(3,29) Unterminated &lt;c:import tag
	br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:69)
	br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:64)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:86)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
root cause

org.apache.jasper.JasperException: /WEB-INF/jsp/principal/index.jsp(3,29) Unterminated &lt;c:import tag
	org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:40)
	org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
	org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:132)
	org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1012)
	org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1290)
	org.apache.jasper.compiler.Parser.parseElements(Parser.java:1467)
	org.apache.jasper.compiler.Parser.parse(Parser.java:138)
	org.apache.jasper.compiler.ParserController.doParse(ParserController.java:216)
	org.apache.jasper.compiler.ParserController.parse(ParserController.java:103)
	org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:154)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:315)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:295)
	org.apache.jasper.compiler.Compiler.compile(Compiler.java:282)
	org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:586)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
	br.com.caelum.vraptor.core.DefaultStaticContentHandler.deferProcessingToContainer(DefaultStaticContentHandler.java:64)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:80)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
	br.com.caelum.vraptor.view.DefaultPageResult.forward(DefaultPageResult.java:67)
	br.com.caelum.vraptor.extra.ForwardToDefaultViewInterceptor.intercept(ForwardToDefaultViewInterceptor.java:59)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.OutjectResult.intercept(OutjectResult.java:64)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ExecuteMethodInterceptor.intercept(ExecuteMethodInterceptor.java:75)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ParametersInstantiatorInterceptor.intercept(ParametersInstantiatorInterceptor.java:86)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InstantiateInterceptor.intercept(InstantiateInterceptor.java:42)
	br.com.caelum.vraptor.core.InstantiatedInterceptorHandler.execute(InstantiatedInterceptorHandler.java:47)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.InterceptorListPriorToExecutionExtractor.intercept(InterceptorListPriorToExecutionExtractor.java:46)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.FlashInterceptor.intercept(FlashInterceptor.java:81)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:67)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:65)
	br.com.caelum.vraptor.core.DefaultRequestExecution.execute(DefaultRequestExecution.java:70)
	br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:92)
	br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:56)
	br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:89)
	org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:390)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.18 logs.

Apache Tomcat/6.0.18
Guevara

Olá!
Eu costumo injetar footer e header assim:

<jsp:include page="/WEB-INF/jsp/layouts/footer.jsp"></jsp:include>

Abraço!

A

Guevara:
Olá!
Eu costumo injetar footer e header assim:

<jsp:include page="/WEB-INF/jsp/layouts/footer.jsp"></jsp:include>

Abraço!

Também não deu certo!

Guevara

O.o
Vc alterou corretamente o caminho para a sua JSP, repare que o include é feito pegando diretamente a sua JSP na pasta /jsp e não está relacionado a métogo algum no Controller. Têm que funcionar.

A

Guevara:
O.o
Vc alterou corretamente o caminho para a sua JSP, repare que o include é feito pegando diretamente a sua JSP na pasta /jsp e não está relacionado a métogo algum no Controller. Têm que funcionar.

Se eu digito no browser: http://localhost:8080/OnlineSchool/principal/topo abre o topo.jsp

daí eu anteirei o jsp:include para: <jsp:include page="/principal/topo"></jsp:include>

esta certo?

Mesmo assim não esta funcionando.

Agradeço pela força se conseguir me ajudar ficarei grato.

A

Se eu colocar <a href="<c:url value="/principal/topo" />">Ir para o topo</a> vai para o topo normal

mais quando eu coloco isso: <c:import url="<c:url value="/principal/topo" />" /> não funciona

A

Deu certo pessoal!

<c:import url="/WEB-INF/jsp/principal/topo.jsp" />

ola

<c:import url="/WEB-INF/jsp/principal/rodape.jsp" />

Valeu Guevara segui seu princípio.

Lucas_Cavalcanti

só pra ficar claro:

se vc quer linkar pra um jsp direto, vc pode usar o

<c:import url="/WEB-INF/jsp/principal/topo.jsp" />

ou

<%@include file="../../principal/topo.jsp" %>

(caminho relativo)

se vc quer incluir baseado numa url, ou seja, usando uma lógica, vc precisa fazer:

<jsp:include url="/principal/topo" />

(não precisa do c:url)

A

Lucas Cavalcanti:
só pra ficar claro:

se vc quer linkar pra um jsp direto, vc pode usar o

<c:import url="/WEB-INF/jsp/principal/topo.jsp" />

ou

<%@include file="../../principal/topo.jsp" %>

(caminho relativo)

se vc quer incluir baseado numa url, ou seja, usando uma lógica, vc precisa fazer:

<jsp:include url="/principal/topo" />

(não precisa do c:url)

Então lucas tentei fazer o caminho relativo lá

<jsp:include page="/principal/topo" />

da o seguite erro:

HTTP Status 404 - /OnlineSchool/principal/topo

type Status report

message /OnlineSchool/principal/topo

description The requested resource (/OnlineSchool/principal/topo) is not available.

Apache Tomcat/6.0.18
Guevara

Faltou a extensão do arquivo:

<jsp:include page="/WEB-INF/principal/topo.jsp" />

Tente novamente.

Lucas_Cavalcanti

se vc quer usar:

<jsp:include page="/principal/topo" />

vc precisa de um controller que responde por isso…
ou um

@Resource
public class PrincipalController {
    public void topo(){...}
}

ou um método em algum controller:

@Path("/principal/topo")
  public void topo(){...}
Lagaffe

Lucas

Eu fiz um teste com o <jsp:include page="/inicio/menu" /> exatamente da forma como indicou (inclui o metodo com path).

Não apareceu nada, nem erro.

Mesmo que coloque <jsp:include page="/qq/qqcoisa" /> não aparece nenhum erro.

Criado 26 de setembro de 2010
Ultima resposta 27 de set. de 2010
Respostas 13
Participantes 5