Amigos do fórum, usuários do VRaptor, por gentileza,
Estou em um debate com a equipe em que trabalho com VRaptor, sobre a forma como mandar objetos para a view, no caso de um único objeto. Como vocês preferem/costumam fazer?
Assim:
@Resource
public class Controller {
public Tipo metodo() {
return new Tipo();
}
}
ou assim:
@Resource
public class Controller {
private final Result;
public class Controller(Result result) {
this.result = result;
}
public void metodo() {
result.include("tipo", new Tipo());
}
}
Nas duas formas o acesso no jsp seria com ${tipo.algumaCoisa}
Nossos controllers estão nessa segunda abordagem, mas estamos pensando que a primeira facilitaria mais a escrita dos testes e o codigo ficaria ainda mais independente do VRaptor.
Como vocês fazem? Qual é a melhor prática nesse caso? Qual seria a convencão do framework?
[quote=Rafael Guerreiro]Eu prefiro a segunda forma, por mais que atrapalhe nos testes.
A minha preferência se deu quando eu precisava controlar exceptions e era obrigado a retornar algo, ficando com return null no código…[/quote]
Cara, bem observado…não ia ficar muito legal mesmo.
Um outro probleminha que vejo nessa abordagem de “return” é que ela só serve pra retornar um único objeto pra view, caso seja mais de um seria necessário usar o result.include. Meu receio é o código ficar meio despadronizado, com return em alguns lugares e result.include em outros…
tipo um método “lista” que retorna uma List é bem claro… mas um método form que retorna uma lista de fabricantes que são usados para preencher combobox é meio estranho, melhor usar o result.include…
mas, em geral, costumo usar result.include sempre.