estou desenvolvendo um trabalho com vraptor e estou encontrando dificuldade na hora de enviar (via Post) um objeto para o vraptor, segue abaixo códigos-fonte relaciondados:
Formulário:
`
<select class="mdl-selectfield__select" id="person-type" name="user.person.personType">
<option value="${user.person.personType}"><c:out value="${user.person.personType}"></c:out></option>
<option value="INDIVIDUAL">Pessoa Física</option>
<option value="LEGAL">Pessoa Jurídica</option>
</select>
<label class="mdl-selectfield__label" for="person-type">Tipo da Conta</label>
<input class="mdl-textfield__input" type="text" id="name" name="user.person.name" value="${user.person.name}">
<label class="mdl-textfield__label" for="name">Nome</label>
<input class="mdl-textfield__input" type="email" id="email" name="user.person.email" value="${user.person.email}">
<label class="mdl-textfield__label" for="email">e-mail</label>
<input class="mdl-textfield__input" type="text" pattern="-?[0-9]*(\.[0-9]+)?" id="balance" name="user.balance.available" value="${user.balance.available}" disabled>
<label class="mdl-textfield__label" for="balance">Saldo Disponível</label>
<input class="mdl-textfield__input" type="text" id="username" name="user.username" value="${user.username}" disabled>
<label class="mdl-textfield__label" for="username">Usuário</label>
<input class="mdl-textfield__input" type="text" id="social" name="user.person.socialNumber" value="${user.person.socialNumber}">
<label class="mdl-textfield__label" for="usr">CPF/CNPJ</label>
<input class="mdl-textfield__input" type="text" id="phone" name="user.person.phoneNumber" value="${user.person.phoneNumber}">
<label class="mdl-textfield__label" for="phone">Telefone</label>
<select class="mdl-selectfield__select" id="user-type" name="user.userType">
<option value="${user.userType}"><c:out value="${user.userType}"></c:out></option>
<option value="ADMINISTRATOR">Administrador</option>
<option value="EDITOR">Editor</option>
<option value="WRITER">Escritor</option>
<option value="CLIENT">Cliente</option>
</select>
<label class="mdl-selectfield__label" for="user-type">Tipo do Usuário</label>
<input class="mdl-textfield__input" type="password" id="pwd" name="user.password" value="${user.password}">
<label class="mdl-textfield__label" for="pwd">Senha</label>
<button class="mdl-button mdl-js-button mdl-button--raised mdl-button--colored mdl-js-ripple-effect mdl-color--indigo-500"> Editar </button>
</form>`
Método do Controller:
`@Controller
@Path(“usuario”)
public class UserController {
@Permission({UserType.ADMINISTRATOR, UserType.EDITOR, UserType.WRITER, UserType.CLIENT})
@Post("editar")
public void edit(User user) {
if (session.getUser().getUserType() == UserType.ADMINISTRATOR) {
session.setUser(user);
} else if (user.getId() == session.getUser().getId()) {
session.setUser(user);
} else {
System.out.println("forbidden");
}
}`
DTO:
public class User {
private Integer id;
private String username;
private String password;
private UserType userType;
private Person person;
private Balance balance;
private Category authorCategory;
private User accountSupervisor;
public User() {
// TODO Auto-generated constructor stub
}
Os métodos getters e setters seguem logo após.
Eu recebo o objeto como null no controller, alguém sabe o motivo?