problem z wyswietlanie id jako string a nie long

0

Hej, myślałam, że sama jakoś podołam ale już nie mam pomysłu bądź coś mi umyka mianowicie mam program napisany w java ze springiem, podłączeniem do bazy danych etc (bardzo banalny) chciałam, zrobić mapowanie żeby po kliknięciu na przycisk, wyświetlał się dany element z bazy danych przez id wydaje mi się, że metodę mam napisaną dobrze, ale wyświetla mi się 400, a dokładnie

**There was an unexpected error (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: "{id}"
org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "{id}


``````@AllArgsConstructor
@NoArgsConstructor
@Data
@Builder
@Entity
@Table(name="animals")
public class Animal {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;

i wszędzie w kontrolerze i w serwisie tez mam jako Long, ma ktoś może pomysł to jeszcze mogłam przeoczyć?

0

A jak wygląda Twój RequestMapping i pod jaki dokładnie URL wysyłasz żądanie, które się wysypuje? Obstawiam, że jakieś syfy lecą w requeście

0
    @GetMapping("/more/{id}")
    public String moreAboutAnimal(@PathVariable Long id, Model model){
            model.addAttribute("animals", animalService.getAnimalsByIdi(id));
            return "more";
    }

i id tylko to

0

To teraz jeszcze napisz jak wygląda request. Można to nagrać (w chromie zakładka network) i zapisać jako curl. (copy as cUrl na tym 400 )
Wstaw tego curl i będzie wiadomo co się stało.

1

curl "http://localhost:8080/more/^%^7Bid^%^7D" -H "Connection: keep-alive" -H "Cache-Control: max-age=0" -H "Upgrade-Insecure-Requests: 1" -H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36" -H "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8" -H "Referer: http://localhost:8080/" -H "Accept-Encoding: gzip, deflate, br" -H "Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7" -H "Cookie: Idea-54a4d926=9f6b8f4c-2aab-4cf7-b2cd-07de8cb52465; JSESSIONID=11A4233641641D9C4F5784A308B63E3C" --compressed

curl 'http://localhost:8080/more/%7Bid%7D' -H 'Connection: keep-alive' -H 'Cache-Control: max-age=0' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8' -H 'Referer: http://localhost:8080/' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: pl-PL,pl;q=0.9,en-US;q=0.8,en;q=0.7' -H 'Cookie: Idea-54a4d926=9f6b8f4c-2aab-4cf7-b2cd-07de8cb52465; JSESSIONID=11A4233641641D9C4F5784A308B63E3C' --compressed

0
%7Bid%7D

Nie wygląda jak coś, co się zgrabnie sparsuje do Long. Przekazałaś tekst "{id}" jako parametr (w formie URL-encoded), nie dziw się, że nie działa :)

Jak to wygląda od strony frontu? Bo mam takie dziwne przeczucie, że to błąd w stylu {id} zamiast {{id}} w jakimś szablonie :P

1 użytkowników online, w tym zalogowanych: 0, gości: 1