Dúvida em carregar páginas com V-Raptor

3 respostas
C

Olá gujeiros, estou com dúvidas em carregar páginas usando V-Raptor, tenho uma página onde tenho um frame superior onde carrega uma outra página de "cabeçalho" que possui uma animação em Flash. Inicialmente a estrutura das minhas pastas está assim:

>>>>>WEB-INF
>>>>>>jsp
>>>>>>>cliente

Meu controller tá assim:
package br.bmweb.controller;

import br.com.caelum.vraptor.Resource;

@Resource
public class ClienteController {
	public void index(){
		
	}
}
Minha página que é carregada no frame e que mostra minha animação em Flash está assim: animacao.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<script src="../js/AC_RunActiveContent.js" type="text/javascript"></script>
</head>

<body bgcolor="#000000">
<div align="center">
  <script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','768','height','166','title','LOGO','src','anim','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','anim' ); //end AC code
</script>
  <noscript>
  <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="768" height="166" title="LOGO">
    <param name="movie" value="anim.swf" />
    <param name="quality" value="high" />
    <embed src="anim.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="768" height="166"></embed>
  </object>
  </noscript>
</div>
</body>
</html>
Minha página index(que tem o frame que carrega a página animacao.jsp) está assim: index.jsp:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>BMWEB</title>
</head>
<frameset rows="190,*" cols="*" framespacing="0" frameborder="no" border="0" bordercolor="#F0F0F0">
  <frame src="../animacao.jsp" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" title="topFrame" />
</frameset>
<noframes></body>
</html>
As páginas index.jsp, animacao.jsp e o arquivo anim.swf estão dentro da pasta cliente, e se eu tento carregar a página animacao.jsp dessa forma:
<frame src="../animacao.jsp" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" title="topFrame" />
O V-Raptor vai tentar carregar a página do diretório WEB-INF/jsp/cliente, carrega a página mas não mostra a animação. Notei que se eu criar uma pasta dentro da pasta WEB-CONTENT e copiar os arquivos animacao.jsp e anim.swf pra dentro dela e tentar carregar a página animacao.jsp dessa forma:
<frame src="../nome_da_minha_pasta/animacao.jsp" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" title="topFrame" />
O V-Raptor vai procurar no caminho WEB-CONTENT/nome_da_minha_pasta/animacao.jsp e carrega a página e a animação perfeitamente.

Agora a minha dúvida: Como posso fazer o V-Raptor carregar a página com a animação do caminho WEB-INF/jsp/cliente??

3 Respostas

edu_merckx

cristianogro, estou estudando o vraptor e nesse caso eu criaria um método animacao() no controller e na tag frame, faria assim:

<frame src="/cliente/animacao" name="topFrame" scrolling="no" noresize="noresize" id="topFrame" title="topFrame" />

até mais…

C

Resolveu parcialmente, carregou a página mas ficou apenas um quadrado em branco no lugar da animação, já sei qual é o problema, mas não sei como solucionar, a animação não está carregando, quando acesso o link gera isso no console:

01:05:44,374 DEBUG [ParametersInstantiatorInterceptor] Parameter values for [DefaultResourceMethod: ClienteController.animacaoClienteController.animacao()] are [] 01:05:44,394 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor 01:05:44,394 DEBUG [ExecuteMethodInterceptor] Invoking ClienteController.animacao() 01:05:44,397 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor OutjectResult 01:05:44,404 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor 01:05:44,404 DEBUG [ForwardToDefaultViewInterceptor] forwarding to the dafault page for this logic 01:05:44,413 DEBUG [DefaultPageResult ] forwarding to /WEB-INF/jsp/cliente/animacao.jsp 01:05:44,414 DEBUG [DefaultStaticContentHandler] Deferring request to container: /BMWEB/WEB-INF/jsp/cliente/animacao.jsp 01:05:44,416 DEBUG [VRaptor ] VRaptor ended the request 01:05:44,422 DEBUG [DefaultStaticContentHandler] Deferring request to container: /BMWEB/js/AC_RunActiveContent.js 01:05:44,488 DEBUG [VRaptor ] VRaptor received a new request 01:05:44,495 DEBUG [DefaultRequestExecution] executing stack DefaultRequestExecution 01:05:44,502 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor 01:05:44,502 DEBUG [DefaultResourceTranslator] trying to access /cliente/anim.swf 01:05:44,503 DEBUG [VRaptor ] VRaptor ended the request
Pelo que percebi nessa linha aqui:

01:05:44,502 DEBUG [DefaultResourceTranslator] trying to access /cliente/anim.swf

Para que a animação fosse carregada deveria aparecer algo como

/BMWEB/jsp/cliente/anim.swf

Sei que o erro está nestas linhas do arquivo animacao.jsp:

<script type="text/javascript"> AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','768','height','166','title','LOGO','src','anim','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','anim' ); //end AC code </script> <noscript> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="768" height="166" title="LOGO"> <param name="movie" value="anim.swf" /> <param name="quality" value="high" /> <embed src="anim.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="768" height="166"></embed> </object> </noscript>
Nesse código acima ali onde carrega o arquivo “anim.swf” já tentei fazer algo como ../anim.swf mas não resolveu. Alguém tem alguma idéia??

Lucas_Cavalcanti

ou vc coloca a animação dentro da pasta WebContent (fora da WEB-INF) ou vc cria uma lógica do tipo:

@Path("/client/anim.swf")
public void animacao() {
   result.forwardTo("/WEB-INF/caminho/para/a/animacao/anim.swf");
}

nada que está no WEB-INF é acessível a partir do browser (na barra de endereços ou no HTML gerado)

Criado 24 de abril de 2010
Ultima resposta 25 de abr. de 2010
Respostas 3
Participantes 3