Question: I try to delete a user by getting id in url with an error:

```
Failed to convert value of type 'java.lang.String' to required type 'int'; 
nested exception is java.lang.NumberFormatException: For input string:

```

I change int id to String id, but then `deleteMyUser()` will not work because it accepts an integer.

Code:

```
<a href="/delete-user?id=${user.id}">x</a>

@RequestMapping("/delete-user{id}")
    public  String deleteUser(@PathVariable("id") int id,HttpServletRequest request)
    {   
        request.setAttribute("mode","MODE_HOME");
        userService.deleteMyUser(id);

        return "welcome";

    }

```

Answer: 
You should add the `id` to **path**, so remove `?id=`:

```
<a href="/delete-user${user.id}">x</a>

```
Let me explain you some urls and there mapping

First /user/{id}/{userId} this is path variable format /user?id=1&userid=2 this is requestparam/query param format. 

```
https://domainname.com/find/user?id=1

@GetMapping("/find/user")
public  String deleteUser(@RequestParam("id") int id){   

}

https://domainname.com/find/user/1

@GetMapping("/find/user/{id}")
public  String deleteUser(@Pathvariable("id") int id){   

}

https://domainname.com/find/user/1/2
@GetMapping("/find/user/{id}/{userid}")
public  String deleteUser(@Pathvariable("id") int id,@Pathvariable("userId") 
int userId){   

}

```

\*\* in case of pathvariable your variable are part of mapping

POST request

```
https://domainname.com/find/user
in request body {"id":1}

@PostMapping("/find/user")
public  String deleteUser(@RequestBody Integer id){   

}
https://domainname.com/find/user/1?userId=2
@GetMapping("/find/user/{id}")
public  String deleteUser(@Pathvariable("id") int id,@RequestParam("userId") 
int userId){   

}

```

if you are using `@RequestMapping` then its recommanded to define method also by default it map with get request.

`@RequestMapping(method = [RequestMethod.GET])`