gpt4 book ai didi

java - 如何修复错误 : Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long' ;

转载 作者:行者123 更新时间:2023-12-05 07:23:53 24 4
gpt4 key购买 nike

我正在开发一个项目经理 - 网络应用程序,它允许您以成员(member)身份登录并加入不同类型的项目。成员可以参与多个项目。项目和成员实体由成员资格实体连接。每次登录成员加入项目时,都会创建一个新的成员实体。

但是,在成员(member)单击 joinProject.html 页面上的加入按钮后,我无法创建新成员(member)。我不断收到以下错误消息:

(type=Bad Request, status=400).
Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "saveMembership"

目标是将登录成员添加到项目中。可以在 projectDetails.html 页面上看到新成员列表。

我正在使用 Spring Boot、Thymeleaf 和 JPA。我有一种感觉,这是一件非常简单和愚蠢的事情,但我就是找不到问题所在。 :(

如果您需要查看更多代码或信息,我很乐意提供。

感谢您的宝贵时间!

这是我尝试用来将所需数据导入我的 Controller 的 MembershipCreatorObject 类:

public class MembershipCreatorObject {

private String id;
private String username;
private String jobDescription;

public MembershipCreatorObject() {
super();
}

public MembershipCreatorObject(String id, String username, String jobDescription) {
super();
this.id = id;
this.username = username;
this.jobDescription = jobDescription;
}

public String getId() {
return id;
}

public void setId(String id) {
this.id = id;
}

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getJobDescription() {
return jobDescription;
}

public void setJobDescription(String jobDescription) {
this.jobDescription = jobDescription;
}

这是我的 Controller :


@RequestMapping(value= {"/joinProject/{projectId}"})
public String joinProject(@PathVariable("projectId") Long urlId, Model model) {

model.addAttribute("mObject", new MembershipCreatorObject());

model.addAttribute("project", projectRepo.findByProjectId(urlId));

return "joinProject";
}

@RequestMapping(value="/saveMembership", method=RequestMethod.POST)
public String saveMembership(MembershipCreatorObject mObject) {

String id = mObject.getId();

Long idConverted = Long.parseLong(id);

String username = mObject.getUsername();

String description = mObject.getJobDescription();

Project projectToAdd = projectRepo.findByProjectId(idConverted);

Member memberToAdd = memberRepo.findByUsername(username);

Membership membershipToAdd = new Membership(description, memberToAdd, projectToAdd);

membershipRepo.save(membershipToAdd);

return "redirect:/projectCatalog";
}

这是 joinProject -html 文件。

    <h1>Join Project</h1>

<h4 th:inline="text">Logged in as: [[${#httpServletRequest.remoteUser}]]</h4>

<form th:object="${mObject}" th:action="@{saveMembership}" action="#" style="padding: 20px;" method="POST">

<input th:field="*{id}" />
<!-- th:value="${project.projectId}" -->

<input type="text" th:field="*{username}" />
<!-- th:value="${#httpServletRequest.remoteUser}" -->

<label>What will you be working on?</label>
<input type="text" th:field="*{jobDescription}" style="display: block;" />

<input type="submit" value="Join" style="display: block; margin-top:10px; width:70px;">

</form>

最佳答案

看起来您正在尝试将文字字符串“saveMembership”转换为长整数,而不是长整数的字符串表示形式,例如:

String str = "12323445664546544564974";
Long lng = Long.parseLong(str);

这是我基于异常堆栈跟踪的假设,该堆栈跟踪指出“NumberFormatException:对于输入字符串:”saveMembership“”

关于java - 如何修复错误 : Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long' ;,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55697373/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com