Весенний загрузчик Crud репозиторий - PullRequest
0 голосов
/ 16 апреля 2020

Я новичок в Spring и пытаюсь освоить основные операции c crud, но я застрял с операцией удаления, моя сущность выглядит следующим образом

public class Alien {
@Id
int aid;
String aname;
public int getAid() {
    return aid;
}
public void setAid(int aid) {
    this.aid = aid;
}
public String getAname() {
    return aname;
}
public void setAname(String aname) {
    this.aname = aname;
}

Мой дом. jsp Файл выглядит следующим образом

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="ISO-8859-1">
<title>Insert title here</title>
</head>
<body>

<form action="addAlien">
<input type="text" name="aid"><br>
<input type="text" name="aname"><br>
<input type="submit"><br>
</form>

<form action="deleteAlien">
<input type="text" name="aid"><br>
<input type="submit"><br>
</form>
</body>
</html>

И контроллер выглядит следующим образом: я хочу отправить кнопку в операции удаления, где я хочу удалить базы записей по идентификатору

public class HomeController {
@Autowired
Alienrepo alienrepo;

@RequestMapping("/")
public String home() {
  return "home.jsp";
  }

@RequestMapping("/addAlien")
public String addAlien(Alien alien) {
    alienrepo.save(alien);
    return "home.jsp";

}
@RequestMapping("/deleteAlien")
public String deleteAlien(Integer id) {
    alienrepo.deleteById(id);
    return "home.jsp";
}
}

Чего мне не хватает?

Ответы [ 2 ]

1 голос
/ 16 апреля 2020

Это должно выглядеть так:

@RequestMapping("/deleteAlien/{id}")
public String deleteAlien(@PathVariable int id) {
    alienrepo.deleteById(id);
    return "home.jsp";
}

Вам необходимо передать идентификатор объекта, который вы хотите удалить. Обратите внимание, что передача имени в @Pathvariable является необязательной, если имя вашего параметра точно соответствует имени переменной, являющейся аргументом.

1 голос
/ 16 апреля 2020

Ваше понимание запроса HTTP не завершено. Вы не настраиваете метод HTTP ни в одном API, поэтому все API имеют метод GET по умолчанию. Вам необходимо настроить параметр, который вы отправляете в запросе. Как:

@RequestMapping("/deleteAlien/{id}")
public String deleteAlien(@PathVariable("id") Integer id) {
    alienrepo.deleteById(id);
    return "home.jsp";
}

Сначала вы должны прочитать о HTTP, RestControllers ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...