[RESOLVIDO]VRaptor recebendo obj null da JSP

Bom dia caros, to fazendo um trabalho com vraptor aki e estou com problemas de pegar um objeto da jsp, segue o codigo:

	<form id="contactform" class="rounded" action="<c:url value="/enviar"/>" method="post">

		<center>
			<h2>Cadastro</h2>
		</center>

			<div class="field">
				<label for="nome" >Nome:</label>
				<input type="text" name="cliente.nome" class="input" id="nome" value="${clienteDTO.nome }"/>
			</div>

			<div class="field">
				<label for="email" >Email:</label>
				<input type="text" name="cliente.email" class="input" id="email" value="${clienteDTO.email }" />
			</div>
			
			<div class="field">
				<label for="comentario">Comentario:</label>
				<textarea class="input" name="cliente.comentario" id="comentario"  rows="10" cols="50">
				</textarea>
			</div>
			
		<!-- Button -->
		<div id="botao">
			<input type="submit" value="Enviar" class="button" />
		</div>

	</form>

E aqui meu IndexController

[code]@Resource
public class IndexController {

private final FacadeAdministrador facade;
private final Result result;


public IndexController(FacadeAdministrador facade,Result result) {
	this.facade = facade;
	this.result = result;				
}


@Path("/")
public void formularioCliente() {		
}


@Post("/enviar")
public void enviar(ClienteDTO cliente){
	System.out.println(cliente);
	//facade.inserir(cliente);
}[/code]

E o objeto ta vindo null da jsp, alguem pode me ajudar com isso?

Cara eu dei uma olhada no manal do VRaptor, e bem na parte que ele recebe NULL quando vc utiliza injeção de dependencias em métodos (que utilizam redirect ou forward)

http://vraptor.caelum.com.br/pt/docs/componentes/

Também é possível usar injeção de dependências em métodos. No entanto quando houver redirect ou forward para métodos com injeção desta forma, os objetos não serão injetados, recebendo NULL.

@Resource
public class ClienteController {

    @Post
    public void adiciona(Cliente cliente, ClienteDao dao) {
        dao.adiciona(cliente);
    }
}

De qualquer forma, tenta tirar o @Component do seu ClienteDTO ou se não tiver coloca!

Coloquei o @Component mas sem sucesso, deve ser algum detalhe…

So lembrando que meu ClienteDTO é meu “model”

Voce pode postar o FacadeAdministrador?

[code]@Component
public final class FacadeAdministrador implements FacadeAdministradorInterface {

private static final long serialVersionUID = -3478573633778398564L;

/**
 * Atributo referente a criação de Log da classe.
 */
private transient static Logger logger = Logger
		.getLogger(FacadeAdministrador.class.getName());
// ############\\
// * Obs: Criar uma variável para cada classe e reescrever no construtor


private ClienteDelegateInterface clienteDelegate;


public FacadeAdministrador(){
	clienteDelegate = ClienteDelegate.getInstance();
		
}


//#######CLIENTE######\\

public void inserir(ClienteDTO clienteDto) {
	clienteDelegate.inserir(clienteDto);
}

public void alterar(ClienteDTO clienteDto) {
	clienteDelegate.alterar(clienteDto);
}

public void excluir(ClienteDTO clienteDto) {
	clienteDelegate.excluir(clienteDto);
}

public List<ClienteDTO> listarTodosClientes() {
	return clienteDelegate.listarTodosClientes();
}

public ClienteDTO carregarCliente(Long id){
	return clienteDelegate.carregarCliente(id);
}

public List<ClienteDTO> buscarPorNomeCliente(String nome){
	return clienteDelegate.buscarPorNomeCliente(nome);
}[/code]

Eu ja fiz um teste criando um objeto pelo contrutor do ClienteDTO e ele grava no banco normal, o problema e q to moscando em algum detalhe pra pegar o obj da jsp

Estranho, parece que está tudo certo, a única coisa diferente é o Final da classe e o implements que vc colocou, fora isso tá tudo normal!!! Vc pode colocar o model ClienteDTO tambem?

[code]public class ClienteDTO extends AbstractModelDTO {

private String email;
private String assunto;
private String comentario;


public ClienteDTO(Long id, String nome, String email, String comentario, String assunto) {
	super(id, nome);
	this.email = email;
	this.comentario = comentario;
	this.assunto = assunto;
}

public String getEmail() {
	return email;
}
public void setEmail(String email) {
	this.email = email;
}

public String getComentario() {
	return comentario;
}

public void setComentario(String comentario) {
	this.comentario = comentario;
}

public String getAssunto() {
	return assunto;
}

public void setAssunto(String assunto) {
	this.assunto = assunto;
}

@Override
public String toString() {
	return "ClienteDTO [email=" + email + ", assunto=" + assunto
			+ ", comentario=" + comentario + "]";
}

@Override
public int hashCode() {
	final int prime = 31;
	int result = super.hashCode();
	result = prime * result + ((assunto == null) ? 0 : assunto.hashCode());
	result = prime * result
			+ ((comentario == null) ? 0 : comentario.hashCode());
	result = prime * result + ((email == null) ? 0 : email.hashCode());
	return result;
}

@Override
public boolean equals(Object obj) {
	if (this == obj)
		return true;
	if (!super.equals(obj))
		return false;
	if (getClass() != obj.getClass())
		return false;
	ClienteDTO other = (ClienteDTO) obj;
	if (assunto == null) {
		if (other.assunto != null)
			return false;
	} else if (!assunto.equals(other.assunto))
		return false;
	if (comentario == null) {
		if (other.comentario != null)
			return false;
	} else if (!comentario.equals(other.comentario))
		return false;
	if (email == null) {
		if (other.email != null)
			return false;
	} else if (!email.equals(other.email))
		return false;
	return true;
}[/code]

Tenta fazer um teste, adiciona um construtor vazio para o VRaptor poder instanciar, e (talvez já até tenha) adiciona o @Component.

    public ClienteDTO(){};

nossa qndo vc flo ja percebi q era isso, show!!

Vlw mano foi so add o contrutor vazio no meu DTO, vlw!!

Opa, é isso ai manow ^^ por nada!!!