Olá,
Estou iniciando minha aprendizagem em Spring Boot e estou travado em um erro que não consigo resolver, já pesquisei em documentações e em diversos fóruns e não encontrei nada que pudesse me ajudar.
Estou tentando fazer uma ferramenta de controle de finanças, que esta da seguinte forma até o momento:
Model do usuario:
@Entity
public class Usuario {
@Id
@GeneratedValue (strategy=GenerationType.IDENTITY)
private Long idusuario;
private String usuario;
private String senha;
private float salario;
//metodos getters e setters
Controller:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.financasapp.models.Usuario;
import com.financasapp.repository.UsuarioRepository;
@Controller
public class CadastroController {
@Autowired
private UsuarioRepository gr;
@RequestMapping(value="/cadastro", method=RequestMethod.GET)
public String cadastro() {
return "/cadastro";
}
@RequestMapping(value="/cadastro", method=RequestMethod.POST)
public String cadastro(Usuario usuario) {
gr.save(usuario);
return "redirect:/index";
}
}
E meu repository:
import org.springframework.data.repository.CrudRepository;
import com.financasapp.models.Usuario;
public interface UsuarioRepository extends CrudRepository<Usuario, Long>{
}
view:
<!DOCTYPE html>
<html lang="pt">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="css/login.css">
<title>Cadastro</title>
</head>
<body class="container">
<h1>Cadastro de Usuário</h1>
<div class="row justify-content-center">
<div class="col-6">
<form method="POST">
<div class="form-group">
<label for="user">Usuario</label>
<input type="text" class="form-control" name="usuario" value="" id="user" placeholder="Nome de usuario">
</div>
<div class="form-group">
<label for="senha">Senha</label>
<input type="password" class="form-control" name="senha" value="" id="senha" placeholder="Sua senha">
</div>
<div class="form-group">
<label for="salario">Salário</label>
<input type="number" class="form-control" name="salario" value="" id="salario" placeholder="ex: R$ 1000,00">
</div>
<button type="submit" class="btn btn-primary ">Cadastrar</button>
</form>
</div>
</div>
</body>
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</html>
O problema ocorre ao inserir as informações no input e clicar no botão, ocorre o seguinte erro:
This application has no explicit mapping for /error, so you are seeing this as a fallback. Sun Jul 21 21:17:42 BRT 2019 There was an unexpected error (type=Bad Request, status=400). Failed to convert value of type 'java.lang.String' to required type 'com.financasapp.models.Usuario'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from ype [java.lang.String] to type [java.lang.Long] for value 'TESTE'; nested exception is java.lang.NumberFormatException: For input string: "TESTE" org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'com.financasapp.models.Usuario'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.lang.Long] for value 'TESTE'; nested exception is java.lang.NumberFormatException: For input string: "TESTE"
a tabela do banco de dados esta exatamente igual ao model Usuario.