VRaptor 3 - duvida sobre escopo

Estou comecando os testes com o framework e me surgiu uma duvida.

Tenho o metodo no controller:

        @Path("/pedidos/{pedido.idPedido}/removerItem/{linhaDeItem.idProduto}")
	public void removerItem(Pedido pedido, LinhaDeItem linhaDeItem){
		System.out.println(pedido);
		//...
	}

no jsp:

<c:forEach items="${itensList}" var="linhaDeItem" varStatus="i">	
			  <tr>
			     <td>${linhaDeItem.idProduto}</td>
			  
			     <td>${linhaDeItem.descricao}</td>
			  
			  	 <td align="right">${linhaDeItem.quantidade}</td>
			  
			  	 <td align="right">${linhaDeItem.precoUnitario}</td>
			  
			     <td align="right">${linhaDeItem.valorDosProdutos}</td>
			     
		             <td><a href="<c:url value="/pedidos/${pedido.idPedido}/removerItem/${linhaDeItem.idProduto}"/>">Remover</a></td>
			  </tr>
			
			</c:forEach>

Tudo funciona perfeitamente, mas minha duvida é: como eu faco pra recuperar a mesma instancia do Pedido? Ou como faco pra colocar a instancia na session? O controller ja esta anotado com @SessionScoped.

vc quer que o pedido seja o mesmo na jsp e no parâmetro do método?

não é bom colocar um controller como @SessionScoped, pois ele geralmente usa coisas de request, como result e validator.

tira a anotação @SessionScoped, e cria uma classe:

@Component
@SessionScoped
public class PedidoAtual {

    private Pedido pedido;

    // getter e setter
}

daí vc pode receber esse PedidoAtual no construtor do seu controller, colocar ou tirar um pedido, e vc pode usar na sua jsp:

${pedidoAtual.pedido.id}

passar a mesma instância pro método não vai rolar por enquanto… mas daí vc pode usar o pedido que está dentro do PedidoAtual

[quote=lucascs]vc quer que o pedido seja o mesmo na jsp e no parâmetro do método?

não é bom colocar um controller como @SessionScoped, pois ele geralmente usa coisas de request, como result e validator.

tira a anotação @SessionScoped, e cria uma classe:
[/quote]
Isso eu ja percebi. :slight_smile:

Foi algo parecido com o que eu fiz pra contornar, acho que resolve bem o meu problema. Valeu. :smiley: