Enviar parametro da pagina para controller Vraptor

Pessoal tenho uma pagina com tres combos para preencher o segundo combo dependo do que for selecionado no primeiro combo!
A pergunta é :

1° como envio esse parametro para o controller do Vraptor, e apos ele me listar o que preciso, como retorno o resultado para o combo ? (consegui no javascript mas no meu caso não vai servir…)
meu form esta assim até o momento:

<form action="<c:url value="/listacombo"/>"  method="post" id="formTest" name="formTest">
		<div id="teste" class="inputFile" onsubmit="/listacombo">
			<div class="menuSelect">
			
				<!--######Destinatario###### -->
				<select onchange="optionValue();" onsubmit="/listacombo" name="destinatarios" id="destinatarios">
				  <c:forEach var="destinatario"
					 items="${usuarioLogado.usuario.listaParceria }">
					 <option id="${destinatario.caixaPostalDestinatario}">${destinatario.caixaPostalDestinatario}</option>
				  </c:forEach>
				</select>
				
				<!--######Tipo de Arquivo###### -->
				<select name="tpArquivo" id="tpArquivo">
				  <c:forEach var="tpArquivo"
					 items="${usuarioLogado.usuario.listaParceria }">
					<option value="${tpArquivo.listaTipoDocumentoParceria}">${tpArquivo.listaTipoDocumentoParceria}</option>
				  </c:forEach>
				</select>
				
				<!--######Tipo Documento######-->
				<select name="tp_Documento">
					<c:forEach var="tp_Documento"
						items="${usuarioLogado.usuario.listaParceria }">
						<option value=""></option>
					</c:forEach>
				</select>
			</div>
		</div>
	</form>

e meu controller até o momento fiz isso:

@Resource
public class TransmitirArquivosController {

	private final Validator validator;
	private final Arquivo arquivo;
	private final Result result;	

	public TransmitirArquivosController(Validator validator, Arquivo arquivo, Result result) {
		this.validator = validator;
		this.arquivo = arquivo;
		this.result = result;		
	}

	//Direciona para pagina de transmissão de arquivos
	@Get @Path("/arquivos")
	public void transmitirArquivos() {
	}

	

	///esse é o metodo que criei!!//
	@Post @Path("/listacombo")
	public void listaCombos() throws IOException {
		System.out.println("####################chamou controller listacombo...##############################");
		Usuario usuario = new Usuario();
	    List<ParceriaVO> parceriaVOs = usuario.getListaParceria();
	    for (ParceriaVO parceriaVO : parceriaVOs) {
	    	Set<TipoDocumentoParceriaVO> documentoParceriaVOs = parceriaVO.getListaTipoDocumentoParceria();
	    	for (TipoDocumentoParceriaVO tipoDocumentoParceriaVO : documentoParceriaVOs) {
			
	    		System.out.println(tipoDocumentoParceriaVO.getTipoDocumento().getNomeTipoDocumento());
	    	}
		}
	}

Vlw pesspal

Você não vai poder fazer isso com javascript??
Por que não?

A solução mais legal é se você fizer uma requisição AJAX com o dado da primeira combo. Ai a action retorna um JSON com as options da segunda combo, depois você itera sobre essas opções adicionando a tag <option> dentro do segundo combo.

Então cara e eu nem quero mesmo fazer com javascript, preciso fazer usando somente as convenções do Vraptor :slight_smile:

Mas hein?

Assim, você vai usar o javascript só para tornar a experiencia do usuário melhor. O VRator tem que cuidar so da parte do servidor, nao da view.

Você vai usar as convenções do VRaptor E o javascript (de preferência com o jQuery), não tem como você fazer uma requisição ajax sem javascript.

O VRaptor vai te ajudar bastante, pois ele tem um construtor de JSON. Assim, você usa uma funcionalidade muito boa dele.

Rafael é que sou novato nesse framework, acabei de perguntar aki e estou pesquisando como fazer com jquery ! :oops:
Voce saberia me indicar algum tutorial, ou exemplo na net que possa dar uma olhada? :smiley:

Rafael consegui pegar o item selecionado com jquery assim

<script type="text/javascript"> 
	function optionValue(){
		var option = $('#destinatarios').find('option').filter(':selected').text(); 
		document.forms["formCombos"].submit(); 
		//alert(option);
	}
</script>

ai la no meu controller voce saberia me dizer como faço para usar esse parametro? :slight_smile:

Ah, sim! Me desculpe…

Olha só, o bom do ajax é que a página não precisa ser recarregada para poder receber os dados do servidor.
Então vamos por partes:
Você ja leu, estudou e terminou todos os exercícios da apostila FJ-28 da Caelum?
Se não, esse é prioridade -5000. Para tudo e acaba a apostila.
(Aparentemente o link de download da apostila foi tirado do site da Caelum… http://www.caelum.com.br/curso/fj-28-vraptor-hibernate-ajax/, mas você pode ler a documentação, que também ajuda bastante.http://vraptor.caelum.com.br/documentacao/vraptor3-guia-de-1-minuto/
Se você quiser, tem um curso online da caelum: http://www.caelum.com.br/curso/online/vraptor/)

Aqui explica sobre como fazer o JSON usando o VRaptor:
http://vraptor.caelum.com.br/documentacao/view-e-ajax/

Depois de ter estudado isso tudo, acredito que você ja vai saber como fazer isso.
Aqui tem uns links bem legais para você brincar um pouco:
Docs do jQuery:
http://docs.jquery.com/Main_Page
Como fazer um Ajax com jQuery:
http://api.jquery.com/jQuery.ajax/

Espero que isso tudo te ajude.

a apostila do FJ-28 pode ser baixada em: http://www.caelum.com.br/apostilas/

só selecionar o curso e clicar na versão que quer baixar (PDF, ePub ou mobi)

[quote=rds@]Rafael consegui pegar o item selecionado com jquery assim

<script type="text/javascript"> 
	function optionValue(){
		var option = $('#destinatarios').find('option').filter(':selected').text(); 
		document.forms["formCombos"].submit(); 
		//alert(option);
	}
</script>

ai la no meu controller voce saberia me dizer como faço para usar esse parametro? :slight_smile: [/quote]

Então, para usar ajax, esqueça o form submit. Por que ele não é um submit, é só uma requisição que vai retornar alguns dados.
Eu vou fazer um exemplo aqui, ok?

Java:

public class Cidade {
   private long id;
   private String nome;
// getters e setters...
}
@Resource
public class CidadesController {
   private Result result;
   private CidadesDAO dao;

   public CidadesController(Result result, CidadesDAO dao) {
      this.result = result;
      this.dao = dao;
   }

   @Get("/carrega/cidades")
   public void carregaCidades(String uf){
      List<Cidade> cidades = cidadesDAO.listaCidadesPorUF(uf);
      result.use(Results.json()).withoutRoot().from(cidades).serialize(); // assim o VRaptor ja vai nos entregar um JSON formatadinho para usarmos na view.
   }
}

View:

<select id="UF" name="uf">
   <option value="SP">SP</option>
   <option value="RJ">RJ</option>
   <!-- restante -->
</select>
<select id="cidade" name="cidade">
</select>
<script>
   var urlCarregaCidades = '<c:url value="/carrega/cidades" />';
</script>

JavaScript com jQuery:

$('#UF').on('change', function(){
   // ao trocar de UF, vai carregar as cidades com ajax.
   $.ajax({
		url : urlCarregaCidades, // Aqui não vai dar para você usar o <c:url> se você estiver fazendo em um arquivo JS separado.
// Eu sugiro voce fazer em um arquivo JS separado e na JSP vc cria uma variavel com a URL.
		type : 'get',
		data : { // parametros para a action no controller
			'uf' : $('#UF').val()
		},
		success : function(data) {// data vai ser o seu JSON formatado, o VRaptor vai colocar ele aqui para voce.
			if (data != null) {
				$('#cidade').empty(); // limpa o que ja tinha em cidade
				$.each(data, function() {// itera sobre cada item do seu json e adiciona uma option
					$("#cidade").append(
							'<option value="' + this.id + '">'
									+ this.nome + '</option>');
// repara que eu usei os atributos da classe Cidade...
				});
			}
		},
		error : function() {
			alert('Ocorreu um erro inesperado.');
		}
	});
});

Sugiro que você preste atenção em algumas coisas, por exemplo, eu notei que você usou o atributo onsubmit das tags… NUNCA faça isso, lugar de JavaScript é no JavaScript.
Ao usar esses atributos, seu código fica muito acoplado, e isso é MUITO ruim. Dá uma olhada nos posts no blog da caelum, lá tem bastante coisa legal para você aprender:
Sobre o que eu acabei de te falar dos atributos que nem o onsubmit…
http://blog.caelum.com.br/boas-praticas-com-javascript-e-jquery-codigo-nao-obstrusivo/
Mais coisas do blog, pode ler TUDO que faz bem para a alma…
http://blog.caelum.com.br/

Puxa cara muito obrigado pela ajuda ja estou caminhando aki :smiley:

Poderia me dar mais uma ajudinha :smiley:
Meu script fiz assim:

[code]

[/code]

meus Selects:

<div class="menuSelect">
		
			<!--######Destinatario###### -->
			<select name="destinatarios" id="destinatarios">
			  <c:forEach var="destinatario" items="${usuarioLogado.usuario.listaParceria }">
				 <option value="${destinatario.caixaPostalDestinatario}">${destinatario.caixaPostalDestinatario}</option>
			  </c:forEach>
			</select>
			
			<!--######Tipo de Arquivo###### -->
			<select name="tpArquivo" id="tpArquivo">
			 			  
			</select>
			
			<!--######Tipo Documento######-->
			<select name="tp_Documento">
				<c:forEach var="tp_Documento"
					items="${usuarioLogado.usuario.listaParceria }">
					<option value=""></option>
				</c:forEach>
			</select>
		</div>

Meu controller

@Post @Path("/carregaTpDocumentos")
	 public void carregaTpDocumentos(String destinatario) throws IOException {
		System.out.println("####################chamou controller listacombo...##############################");
		
	    List<ParceriaVO> parceriaVOs = this.usuarioLogado.getUsuario().getListaParceria();
	   
	    for (ParceriaVO parceriaVO : parceriaVOs) {
	    	Set<TipoDocumentoParceriaVO> documentoParceriaVOs = parceriaVO.getListaTipoDocumentoParceria();
	    	for (TipoDocumentoParceriaVO tipoDocumentoParceriaVO : documentoParceriaVOs) {
			
	    		System.out.println(tipoDocumentoParceriaVO.getTipoDocumento().getNomeTipoDocumento());
	    		 result.use(Results.json()).withoutRoot().from(tipoDocumentoParceriaVO).serialize();
	    	}
		}
	}

Esta me mostrando e seguinte exception:

2:15:40,470 DEBUG [VRaptor             ] VRaptor received a new request
12:15:40,542 DEBUG [VRaptor             ] VRaptor received a new request
12:15:41,091 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
12:15:41,091 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
12:15:41,092 DEBUG [DefaultResourceTranslator] trying to access /home
12:15:41,092 DEBUG [DefaultResourceTranslator] trying to access /home/login
12:15:41,103 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: HomeController.homeHomeController.home()]
12:15:41,103 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: HomeController.loginHomeController.login(String, String)]
12:15:41,119 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor
12:15:41,119 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor
12:15:41,140 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor
12:15:41,140 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor
12:15:41,165 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor
12:15:41,200 DEBUG [InjectionBeanPostProcessor] Autowiring by type from bean name 'homeController' to bean named 'autenticadorImpl'
12:15:41,223 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor AutorizacaoInterceptor
12:15:41,257 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor
12:15:41,257 DEBUG [ExecuteMethodInterceptor] Invoking HomeController.home()
12:15:41,306 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor
12:15:41,307 DEBUG [ForwardToDefaultViewInterceptor] forwarding to the dafault page for this logic
12:15:41,319 DEBUG [IogiParametersProvider] IogiParametersProvider is up
12:15:41,363 DEBUG [LazyInterceptorHandler] Invoking interceptor ParametersInstantiatorInterceptor
12:15:41,381 DEBUG [DefaultPageResult   ] forwarding to /WEB-INF/jsp/home/home.jsp
12:15:41,388 DEBUG [DefaultStaticContentHandler] Deferring request to container: /NEWEDI_ediweb/WEB-INF/jsp/home/home.jsp 
12:15:41,420 DEBUG [ParanamerNameProvider] Found parameter names with paranamer for HomeController.login(String, String) as [login, senha]
12:15:41,446 DEBUG [IogiParametersProvider] getParametersFor() called with parameters Parameters(Parameter(login -> LX222T), Parameter(senha -> newedi123)) and targets [Target(name=login, type=class java.lang.String), Target(name=senha, type=class java.lang.String)].
12:15:41,452 DEBUG [ParametersInstantiatorInterceptor] Parameter values for [DefaultResourceMethod: HomeController.loginHomeController.login(String, String)] are [LX222T, newedi123]
12:15:41,457 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor
12:15:41,474 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor
12:15:41,474 DEBUG [ExecuteMethodInterceptor] Invoking HomeController.login(String, String)
12:15:41,583 DEBUG [VRaptor             ] VRaptor ended the request
12:15:43,171 DEBUG [VRaptor             ] VRaptor received a new request
12:15:43,265 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
12:15:43,266 DEBUG [DefaultResourceTranslator] trying to access /arquivos
12:15:43,266 DEBUG [DefaultResourceTranslator] found resource [DefaultResourceMethod: TransmitirArquivosController.transmitirArquivosTransmitirArquivosController.transmitirArquivos()]
12:15:43,278 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor FlashInterceptor
12:15:43,285 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExceptionHandlerInterceptor
12:15:43,288 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor InstantiateInterceptor
12:15:43,324 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor AutorizacaoInterceptor
12:15:43,329 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ExecuteMethodInterceptor
12:15:43,329 DEBUG [ExecuteMethodInterceptor] Invoking TransmitirArquivosController.transmitirArquivos()
12:15:43,333 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ForwardToDefaultViewInterceptor
12:15:43,333 DEBUG [ForwardToDefaultViewInterceptor] forwarding to the dafault page for this logic
12:15:43,395 DEBUG [DefaultPageResult   ] forwarding to /WEB-INF/jsp/transmitirArquivos/transmitirArquivos.jsp
12:15:43,417 DEBUG [DefaultStaticContentHandler] Deferring request to container: /NEWEDI_ediweb/WEB-INF/jsp/transmitirArquivos/transmitirArquivos.jsp 
20/07/2012 12:15:44 org.apache.jasper.compiler.TldLocationsCache tldScanJar
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
12:15:50,965 DEBUG [VRaptor             ] VRaptor ended the request
12:15:51,310 DEBUG [VRaptor             ] VRaptor received a new request
12:15:51,520 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
12:15:51,521 DEBUG [DefaultResourceTranslator] trying to access /js/cors/jquery.xdr-transport.js
12:15:51,521 DEBUG [VRaptor             ] VRaptor ended the request
12:15:51,729 DEBUG [VRaptor             ] VRaptor received a new request
12:15:51,821 DEBUG [ToInstantiateInterceptorHandler] Invoking interceptor ResourceLookupInterceptor
12:15:51,821 DEBUG [DefaultResourceTranslator] trying to access /upload
12:15:51,830 DEBUG [ResourceLookupInterceptor] Method GET is not allowed for requested URI. Allowed Methods are [POST]
br.com.caelum.vraptor.http.route.MethodNotAllowedException: Method GET is not allowed for requested URI. Allowed Methods are [POST]
	at br.com.caelum.vraptor.http.route.DefaultRouter.routesMatchingUriAndMethod(DefaultRouter.java:110)
	at br.com.caelum.vraptor.http.route.DefaultRouter.parse(DefaultRouter.java:83)
	at br.com.caelum.vraptor.http.DefaultResourceTranslator.translate(DefaultResourceTranslator.java:59)
	at br.com.caelum.vraptor.interceptor.ResourceLookupInterceptor.intercept(ResourceLookupInterceptor.java:66)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:54)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.ToInstantiateInterceptorHandler.execute(ToInstantiateInterceptorHandler.java:56)
	at br.com.caelum.vraptor.core.DefaultInterceptorStack.next(DefaultInterceptorStack.java:54)
	at br.com.caelum.vraptor.core.EnhancedRequestExecution.execute(EnhancedRequestExecution.java:44)
	at br.com.caelum.vraptor.VRaptor$1.insideRequest(VRaptor.java:91)
	at br.com.caelum.vraptor.ioc.spring.SpringProvider.provideForRequest(SpringProvider.java:58)
	at br.com.caelum.vraptor.VRaptor.doFilter(VRaptor.java:88)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1001)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:662)
12:15:51,965 DEBUG [VRaptor             ] VRaptor ended the request

eu mudei para Post mas num adiantou?? o que poderia ser ?

Não esta mostrando nada no select?

Então, estranho isso… Ele deveria fazer uma requisição post mesmo… MAS como é uma requisição ajax somente para listar os itens dentro de uma combo box, deveria ser usado o método GET, pois você vai PEGAR(get) uma informação no servidor e não GRAVAR(post)…

Tenta dar um clean no projeto, me parece problema de compilação… Você não tem mais nenhuma requisição para esta action, né?

Poderia me explicar exatamente como que esse método funciona?

[code]@Post @Path("/carregaTpDocumentos")
public void carregaTpDocumentos(String destinatario) throws IOException {
System.out.println("####################chamou controller listacombo…##############################");

    List&lt;ParceriaVO&gt; parceriaVOs = this.usuarioLogado.getUsuario().getListaParceria();  
     
    for (ParceriaVO parceriaVO : parceriaVOs) {  
        Set&lt;TipoDocumentoParceriaVO&gt; documentoParceriaVOs = parceriaVO.getListaTipoDocumentoParceria();  
        for (TipoDocumentoParceriaVO tipoDocumentoParceriaVO : documentoParceriaVOs) {  
          
            System.out.println(tipoDocumentoParceriaVO.getTipoDocumento().getNomeTipoDocumento());  
             result.use(Results.json()).withoutRoot().from(tipoDocumentoParceriaVO).serialize();  
        }  
    }  
}[/code]

Pois você está gerando VÁRIOS JSONs… E isso não me parece algo legal. Posso ver esses VOs?

Dica: por experiência própria, eu aprendi que não é legal você soltar exceptions para o VRaptor, pois algumas coisas podem deixar de acontecer.
é o caso dessa sua linha aqui: throws IOException… Por que ela iria soltar uma IOException? Coloca isso em um catch e direcione para outra view ou envie um result.use(Results.status()).badRequest(“Aqui você escreve o que deu errado.”);

Cara agora fiz um teste e não esta chamando o script

<script> 
	
	$('#cxpostal').on('change', function(){  
		alert("chamou");
		   // ao trocar de destinatario, vai carregar o select tpArquivo com ajax.  
		   $.ajax({  
		        url : "/carrega",   
		        type : 'get',  
		        data : { // parametros para a action no controller  
		            'cxpostal' : $('#cxpostal').val()  
		        },  
		        success : function(data) {// data vai ser o seu JSON formatado, o VRaptor vai colocar ele aqui.  
		            if (data != null) {  
		                $('#tpArquivo').empty(); // limpa o que ja tinha em cidade  
		                $.each(data, function() {// itera sobre cada item do seu json e adiciona uma option  
		                    $("#tpArquivo").append(  
		                            '<option value="' + this.id + '">'+this.nome+'</option>');  
		// repara que eu usei os atributos da classe Cidade...  
		                });  
		            }  
		        },  
		        error : function() {  
		            alert('Ocorreu um erro inesperado.');  
		        }  
		    });  
		}); 
	</script>

O que pode estar errado?

Cara minha pagina esta assim

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<script type="text/javascript" src="<c:url value="/javascript/jquery.js" />"></script>
<html>
	<head>
		<script>	
			$('#cxpostal').on('change', function(){  
				alert("chamou");
				   // ao trocar de destinatario, vai carregar o select tpArquivo com ajax.  
				   $.ajax({  
				        url : "/carrega",   
				        type : 'get',  
				        data : { // parametros para a action no controller  
				            'cxpostal' : $('#cxpostal').val()  
				        },  
				        success : function(data) {// data vai ser o seu JSON formatado, o VRaptor vai colocar ele aqui.  
				            if (data != null) {  
				                $('#tpArquivo').empty(); // limpa o que ja tinha em cidade  
				                $.each(data, function() {// itera sobre cada item do seu json e adiciona uma option  
				                    $("#tpArquivo").append(  
				                            '<option value="' + this.id + '">'+this.nome+'</option>');  			 
				                });  
				            }  
				        },  
				        error : function() {  
				            alert('Ocorreu um erro inesperado.');  
				        }  
				    });  
				}); 
		</script>
	</head>
	<body>		
		<div class="menuSelect">		
			
			<!--######Destinatario###### -->
			<select name="cxpostal" id="cxpostal">
			  <c:forEach var="destinatario"
				 items="${usuarioLogado.usuario.listaParceria }">
				 <option id="${destinatario.caixaPostalDestinatario}">${destinatario.caixaPostalDestinatario}</option>
			  </c:forEach>
			</select>
			
			<!--######Tipo de Arquivo###### -->
			<select name="tpArquivo" id="tpArquivo">
			 			  
			</select>
			
			<!--######Tipo Documento######-->
			<select name="tp_Documento">
				<c:forEach var="tp_Documento"
					items="${usuarioLogado.usuario.listaParceria }">
					<option value=""></option>
				</c:forEach>
			</select>
			
		</div>	
	</body>
</html>

esqueci de fazer algum import?

[quote=rds@]Cara minha pagina esta assim

<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<script type="text/javascript" src="<c:url value="/javascript/jquery.js" />"></script>
<html>
	<head>
		<script>	
			$('#cxpostal').on('change', function(){  
				alert("chamou");
				   // ao trocar de destinatario, vai carregar o select tpArquivo com ajax.  
				   $.ajax({  
				        url : "/carrega",   
				        type : 'get',  
				        data : { // parametros para a action no controller  
				            'cxpostal' : $('#cxpostal').val()  
				        },  
				        success : function(data) {// data vai ser o seu JSON formatado, o VRaptor vai colocar ele aqui.  
				            if (data != null) {  
				                $('#tpArquivo').empty(); // limpa o que ja tinha em cidade  
				                $.each(data, function() {// itera sobre cada item do seu json e adiciona uma option  
				                    $("#tpArquivo").append(  
				                            '<option value="' + this.id + '">'+this.nome+'</option>');  			 
				                });  
				            }  
				        },  
				        error : function() {  
				            alert('Ocorreu um erro inesperado.');  
				        }  
				    });  
				}); 
		</script>
	</head>
	<body>		
		<div class="menuSelect">		
			
			<!--######Destinatario###### -->
			<select name="cxpostal" id="cxpostal">
			  <c:forEach var="destinatario"
				 items="${usuarioLogado.usuario.listaParceria }">
				 <option id="${destinatario.caixaPostalDestinatario}">${destinatario.caixaPostalDestinatario}</option>
			  </c:forEach>
			</select>
			
			<!--######Tipo de Arquivo###### -->
			<select name="tpArquivo" id="tpArquivo">
			 			  
			</select>
			
			<!--######Tipo Documento######-->
			<select name="tp_Documento">
				<c:forEach var="tp_Documento"
					items="${usuarioLogado.usuario.listaParceria }">
					<option value=""></option>
				</c:forEach>
			</select>
			
		</div>	
	</body>
</html>

esqueci de fazer algum import?[/quote]
Não… Você só fez o import errado, sugiro você dar uma boa estudada em HTML, CSS e JavaScript (sem servidor, páginas estáticas mesmo)…
Tem um livro bom, para começar, chamado Use a Cabeça: HTML e CSS…

O problema é que você importou o jQuery antes da tag html… ele tem que ficar dentro de head ou de body…

[code][code]
<%@ taglib prefix=“fmt” uri=“http://java.sun.com/jsp/jstl/fmt”%>
<%@ taglib prefix=“c” uri=“http://java.sun.com/jsp/jstl/core”%>

[/code]