SpringBoot +Thymeleaf - 无法将类型“String”的值转换为所需类型“long”;对于输入字符串:“favicon.ico”

问题描述 投票:0回答:1

这是一个模拟工作注册系统的简单代码。当我尝试注册新职位时,“运行”选项卡中出现以下消息

2024-04-13T18:42:03.089-03:00  WARN 1496 --- [AppRh] [nio-8080-exec-9] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'long'; For input string: "favicon.ico"]

并且该空缺未注册,在访问它的mysql数据库中完全是空的。会是什么?

网页:

<!DOCTYPE html>
<html lang=”pt-br” xmlns:th="http://thymeleaf.org"
    xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout">

<head>

<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>| App RH - UC 12 |</title>

<!-- Bootstrap -->
<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet">


</head>

<body>

    <header>

        <nav class="navbar navbar-expand-lg navbar-dark bg-dark">
            <div class="container-fluid">
                <a class="navbar-brand" href="/">App RH</a>
                <button class="navbar-toggler" type="button"
                    data-bs-toggle="collapse" data-bs-target="#navbarNav"
                    aria-controls="navbarNav" aria-expanded="false"
                    aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                </button>
                <div class="collapse navbar-collapse" id="navbarNav">
                    <ul class="navbar-nav">
                        <li class="nav-item"><a class="nav-link active"
                            aria-current="page" href="#">Home</a></li>

                        <a class="nav-link" href="/vagas"> << Listar Vagas>> </a>
                        </li>
                        <li class="nav-item"><a class="nav-link"
                            href="/cadastrarVaga"> << Cadastrar Vaga>> </a></li>

                    </ul>
                </div>
            </div>
        </nav>

    </header>



    <div class="container">

        <h1>Cadastrar vaga</h1>

        <br>

        <th:block th:insert="~{mensagemValidacao}"></th:block>


        <form method="post">


            <div class="form-group">
                <label for=""><b>Nome do cargo:</b> </label> <input type="text"
                    class="form-control" value="" placeholder="Insira o nome do cargo"
                    name="nome" required> <small class="form-text text-muted"><i>*
                        Utilize nomes e termos mais utilizados no mercado.</i></small>
            </div>

            <div class="row">
                <div class="col">

                    <div class="form-group">
                        <label for=""><b>Data de expiração:</b></label> <input type="date"
                            value="" name="data" class="form-control" required /> <small
                            class="form-text text-muted"><i>* Data em que a vaga
                                expira.</i></small>
                    </div>
                </div>
                <div class="col">
                    <div class="form-group">
                        <label for=""><b>Salário:</b></label> R$ <input type="number"
                            pattern="^\d+(\.|\,)\d{2}$" value="" name="salario"
                            class="form-control" required /> <small
                            class="form-text text-muted"><i>* Utilize valores
                                considerando vírgula e ponto.</i></small>
                    </div>

                </div>
            </div>


            <div class="form-group">

                <label for=""><b>Descrição da vaga:</b></label>
                <textarea class="form-control" name="descricao" maxlength="254"
                    rows="3" required></textarea>
                <small class="form-text text-muted"><i>* Breve resumo da
                        vaga oferecida..</i></small>

            </div>


            <button type="submit" class="btn btn-success">Adicionar Vaga</button>

        </form>

    </div>


    <div style="height: 100px;"></div>

    <div class="footer-copyright fixed-bottom bg-dark text-center py-3">
        <span class="text-light align-middle">| App RH - UC 12 | - ©
            2022 Copyright: CTM Supervisão de Educação Online</span>
    </div>


    <!--JavaScript bootstrap-->
    <script type="text/javascript" src="bootstrap/js/bootstrap.js"></script>
    <script
        src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"
        integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p"
        crossorigin="anonymous">
        
    </script>


</body>

</html>

两个页面控制器:

    @Autowired
    private VagaRepository vr;
    @Autowired
    private CandidatoRepository cr;

    @RequestMapping(value = "/cadastrarVaga", method = RequestMethod.GET)
    public String form() {

        return "vaga/formVaga";
    }

    @RequestMapping(value = "/cadastrarVaga", method = RequestMethod.POST)
    public String form(@Valid Vaga vaga, BindingResult result, RedirectAttributes attributes) {

        if (result.hasErrors()) {
            attributes.addFlashAttribute("mensagem", "Verifique os campos!");
            return "redirect:/cadastrarVaga";
        }

        vr.save(vaga);
        attributes.addFlashAttribute("mensagem", "Vaga cadastrada com sucesso!");
        return "redirect:/cadastrarVaga";
    }

我在这个小 CRUD 项目中使用 Thymeleaf、Spring Boot、MySql、Maven

java spring-boot thymeleaf
1个回答
0
投票

“favicon.ico”无法转换为 long。 long 保存数字数据,而“favicon.ico”则不然。仅当字符串包含数字时,才能将字符串转换为 long。例如,“123”可以转换为 123,而“ABC”则不能转换为 long。

© www.soinside.com 2019 - 2024. All rights reserved.