当前位置: 首页 > 知识库问答 >
问题:

未能将类型“java.lang.String”的值转换为所需类型“java.lang.Long”,提交表单时出现错误

唐增
2023-03-14

我在Controller中有以下内容:

@RequestMapping(
            value = "/update",
            params = {"new_profile_image"},
            method = RequestMethod.POST)
    public ModelAndView updateUserProfileImage(
            @RequestParam(value = "new_profile_image") CommonsMultipartFile newProfileImage,
            ModelMap model) {

        System.out.println("controller executed!");

        if(newProfileImage != null && !newProfileImage.isEmpty()) {
            updateService.updateUserProfileImage(newProfileImage.getBytes());
        }

        return new ModelAndView("redirect:/users/my_profile");
    }

<form action="<c:url value='/users/update?${_csrf.parameterName}=${_csrf.token}' />" method="post"  enctype="multipart/form-data">
    <input name="new_profile_image" type="file" id="new_profile_image">

    <button type="submit" class="btn btn-primary">Update</button>
</form>

美国中部时间2020年2月8日19:08:10出现意外错误(类型=错误请求,状态=400)。未能将类型“java.lang.String”的值转换为所需类型“java.lang.Long”;嵌套异常是java.lang.NumberFormatException:对于输入字符串:“Update”

字符串“Controller Execured!”从不显示在控制台中。我更改了RequestMapping注释中的值=“/updateImage”操作=“ 操作=“ 嵌套异常的错误消息是

我不知道出了什么问题,在Eclipse的控制台中也没有异常显示。

编辑:我忘了说控制器在类级别有requestmapping(“/users”)

现在,我在控制器value=“/update”中更改了value=“/updateImage”,但是我在jsp页面中保留了action=“ ,错误仍然是:

Whitelabel错误页面此应用程序没有针对/Error的显式映射,因此您将其视为一种后退。

美国中部时间2020年2月8日19:08:10出现意外错误(类型=错误请求,状态=400)。未能将类型“java.lang.String”的值转换为所需类型“java.lang.Long”;嵌套异常是java.lang.NumberFormatException:对于输入字符串:“Update”

我想请求甚至没有到达控制器。


共有1个答案

黎曾笑
2023-03-14

最后,我通过从@requestmapping中删除params属性来解决这个问题。因此,控制器的最终结果是:

    @RequestMapping(
            value = "/updateImage",
            method = RequestMethod.POST)
    public ModelAndView updateUserProfileImage(
            @RequestParam(value = "new_profile_image", required = true) CommonsMultipartFile newProfileImage,
            ModelMap model) {

        System.out.println("controller executed!");

        if(newProfileImage != null && !newProfileImage.isEmpty()) {
            updateService.updateUserProfileImage(newProfileImage.getBytes());
        }

        return new ModelAndView("redirect:/users/my_profile");
    }

在其他方法中,我已经将params属性与post请求一起使用,并且它很有效,我想这里的问题与请求是一个多部分的请求有关。但我真的不知道实际的口才是什么。

 类似资料:
  • 我不确定我是否错过了一些真正基本的东西,但这是我想做的。 我想对这个地址进行rest API调用: https://localhost:8080/fetchlocation?lat=-26.2041028和lng=28.0473051和radius=500 我想这是因为当我进行GET调用时,rest API接收的坐标是字符串而不是long。我如何确保rest API在调用时得到的是长值而不是字符串

  • org.springframework.beans.ConversionNotSupportedException:未能将类型“java.lang.long”的属性值转换为属性“card”所需的类型“card”;嵌套异常是java.lang.IllegalStateException:无法将类型“java.lang.Long”的值转换为属性“Card”所需的类型“Card”:找不到匹配的编辑器或转

  • 我想在json中以的形式发布上面的字符串日期,但我收到了400个错误请求。有人能帮忙吗。我使用过,但它也没有帮助我。

  • 这是控制器代码部分: 我收到这条消息: 出现错误(类型=错误请求,状态=400)。无法将类型[java.lang.String]的值转换为所需类型[java.util.Date];嵌套异常为org.springframework.core.convert.conversionfailedexception:无法将值“Wed Jun 08 00:00:00 WET 2016”从类型[java.lan

  • 我有两个实体,它们使用一个主键互相引用,主键是一个实体的整数。我不确定我做这件事的方式是否正确。 下面是引用主键id为int的实体 下面是我们从上面的实体中将外键设置为Kmichango kandaMchango的实体。 这里是表单的一部分,我在这里提交了用户在jumuiya_michango_form.html中提供的数据 下面是我的控制器中用于链接到表单和发布数据的两个方法 在我提交表单后,我

  • 我正在处理一个Spring批量需求。在我的项目中,我在一个单独的util包中编写了一个转换器类作为实用程序类。我正在读写到MySQL数据库的CSV文件。 [未能将类型“java.lang.String”的属性值转换为属性“id_type”所需的类型“java.lang.Integer” 在我的模型类中,id_type是Integer类型,那么为什么它说“未能将属性值字符串转换为Integer?”