Как исправить ошибку: не удалось преобразовать значение типа «java.lang.String» в требуемый тип «java.lang.Long»;JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Как исправить ошибку: не удалось преобразовать значение типа «java.lang.String» в требуемый тип «java.lang.Long»;

Сообщение Anonymous »

Я работаю над веб-приложением менеджера проектов, которое позволяет вам входить в систему как участник и присоединяться к различным типам проектов. Участники могут принять участие в нескольких проектах. Сущности проекта и сущности-участника связаны сущностью-членом. Каждый раз, когда вошедший в систему участник присоединяется к проекту, создается новая сущность членства.

Однако у меня возникают проблемы с созданием нового членства после того, как участник нажимает кнопку «Присоединиться» в joinProject. html-страница. Я постоянно получаю следующее сообщение об ошибке:

(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. У меня такое чувство, что это что-то очень простое и глупое, но я просто не могу найти проблему. :(

Если вам нужно увидеть больше кода или информации, я буду рад предоставить.

Спасибо. для вашего времени!

Вот класс 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;
}


Вот мой контроллер:


@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.

Join Project

Logged in as: [[${#httpServletRequest.remoteUser}]]









What will you be working on?







Подробнее здесь: https://stackoverflow.com/questions/556 ... -to-requir
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»