Olá amigos,
Por gentileza, olhem só essa situação. Tenho um formulário que apresentará campos diferentes dependendo do perfil do usuário que vai se cadastrar. Algo como:
<form action="controller/metodo">
<c:if test="${perfil = 'X'}>
<input type="text" name="usuario1.campo1" />
</c:if>
<c:if test="${perfil = 'Y'}>
<input type="text" name="usuario2.campo2" />
</c:if>
</form>
Mas no modelo esses dois perfis são definidos em entidades diferentes, que tem a mesma herança. Não testei ainda, mas me ocorre que não vou conseguir receber os dados desses dois objetos no mesmo método no controller. Procede?
Me parece que o que nao vou conseguir fazer isso aqui:
@Resource
public class Controller {
@Post
public void metodo(Usuario usuario){ //Usuario seria a superclasse dos dois tipos de usuario
}
}
Pensei nessa alternativa,
@Resource
public class Controller {
@Post
public void metodo1(Usuario1 usuario){
}
@Post
public void metodo2(Usuario2 usuario){
}
}
Mais ou menos como um cenário de pessoa física e juridica, que herdam uma classe comum. Preciso mesmo de dois métodos no controller pra receber cada um, ou há alguma “mágica” que dê pra fazer?
Aproveitando o gancho, o VRaptor conseguiria “magicamente” fazer isso aqui
<form>
<input name="usuario.endereco.rua" type="text"/>
</form>
É possível já receber no controller o Usuario, com o atributo endereco instanciado, e já com o atributo rua preenchido? (seria lindo )
Valeu amigos!