【问题标题】:type mismatch exception :cannot convert String (java.String) to required type (java.lang.Integer)类型不匹配异常:无法将字符串(java.String)转换为所需类型(java.lang.Integer)
【发布时间】:2021-09-16 13:15:50
【问题描述】:

我一直在尝试在我的应用程序中提交表单,但我不断收到以下错误 2021-07-05 21:40:38.910[0;39m [33m WARN[0;39m [35m18360[0;39m [2m---[0;39m [2m[nio-8080-exec-3][0;39m [36m.w.s.m.s.DefaultHandlerExceptionResolver[0;39m [2m:[0;39m Resolved [org.springframework.beans.TypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'com.issuetracking.app.enitities.Equipment'; nested exception is org.springframework.core.convert.ConversionFailedException: Failed to convert from type [java.lang.String] to type [java.lang.Integer] for value 'lights'; nested exception is java.lang.NumberFormatException: For input string: "lights"]

我已经这样写了我的控制器。它由显示使用表单输入的数据列表的处理程序方法组成。在表单中添加设备详细信息的处理程序方法。但是,我一直在尝试在同一页面上执行此操作,以便当我在表单中提交数据时,它应该显示在同一页面上表单下方的表格中。我哪里出错了,我怎么能做到这一点?提前致谢。


import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;

import com.issuetracking.app.enitities.Equipment;
import com.issuetracking.app.services.EquipmentService;

@Controller
public class EquipmentController {

    private EquipmentService equipmentService;

    public EquipmentController(EquipmentService equipmentService) {
        super();
        this.equipmentService = equipmentService;
    } 
    
    @GetMapping("/equipment")
    public String listEquipment(Model model) {
        model.addAttribute("equipment",equipmentService.getAllEquipment()); 
        return "equipment";
    }
    
    @GetMapping("/equipment/new")
    public String addEquipment(Model model) {
         Equipment equipment = new Equipment();
        model.addAttribute("equipment", equipment); 
        return "equipment"; 
    }
    
    @PostMapping("/equipment")
    public String saveEquipment(@ModelAttribute("equipment") Equipment equipments) {
    System.out.println(equipmentService.saveEquipment(equipments));
    return "redirect:/equipment";
    }
    
}

【问题讨论】:

  • 您能否将其显示为导致此日志的输入
  • @MaroineMlis 无法将值“lights”从类型 [java.lang.String] 转换为类型 [java.lang.Integer];嵌套异常是 java.lang.NumberFormatException: For input string: "lights"] <form action="#" th:action="@{/equipment}" th:object = "${equipments}" method="post"> <div class="form-group"> <label for="equip">Name of Equipment</label> <input type="text" class="form-control" id="equip" th:field="*{equipment}" placeholder="Enter Equipment here..."> </div>
  • 我的意思是设备类
  • @MaroineMlis ` @Column(name="Name_of_equipment") 私有字符串设备; `
  • 这个类导入 com.issuetracking.app.enitities.Equipment ?

标签: java spring-boot sqlite


【解决方案1】:

基于错误,我会说有一个属性“填充”,字符串值“灯”。并且这些值在映射过程中不能转换为整数,因为对于相应的属性,需要一个整数。我会说,输入对象不正确。

【讨论】:

  • 但在实体类中,为设备属性指定的类型是字符串,唯一存在的整数是无属性。
猜你喜欢
  • 2015-01-22
  • 1970-01-01
  • 1970-01-01
  • 2017-04-21
  • 2017-04-24
  • 2018-06-10
  • 2022-01-15
  • 2013-12-25
  • 1970-01-01
相关资源
最近更新 更多