VRaptor 4 recebe objeto null da JSP

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&iacute;sica</option>
					<option value="LEGAL">Pessoa Jur&iacute;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&iacute;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&aacute;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&aacute;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?