我正在使用SpringBoot开发应用程序。在REST控制器中,我更喜欢使用路径变量(@PathVariabale注释)。我的代码获取了path变量,但是它在网址中包含{} 括号。请任何人建议我解决这个问题
@PathVariabale
@RequestMapping(value = "/user/item/{loginName}", method = RequestMethod.GET) public void getSourceDetails(@PathVariable String loginName) { try { System.out.println(loginName); // it print like this {john} } catch (Exception e) { LOG.error(e); } }
网址
http://localhost:8080/user/item/{john}
输出控制器
{约翰}
使用http://localhost:8080/user/item/john提交请求来代替。
http://localhost:8080/user/item/john
您为路径变量赋予Spring值“ {john}” loginName,因此Spring使用“ {}”来获取它
loginName
Web MVC框架 指出
URI模板模式 URI模板可用于通过@RequestMapping方法方便地访问URL的选定部分。 URI模板是 类似于URI的字符串 ,包含一个或多个变量名。 当您用值代替这些变量时,模板将变为URI 。提议的URI模板RFC定义了URI的参数化方式。例如,URI模板 http://www.example.com/users/ {userId} 包含变量userId 。 将值fred分配给变量将产生 http://www.example.com/users/fred。 在Spring MVC中,您可以在方法参数上使用@PathVariable批注将其绑定到URI模板变量的值:
URI模板可用于通过@RequestMapping方法方便地访问URL的选定部分。
URI模板是 类似于URI的字符串 ,包含一个或多个变量名。 当您用值代替这些变量时,模板将变为URI 。提议的URI模板RFC定义了URI的参数化方式。例如,URI模板 http://www.example.com/users/ {userId} 包含变量userId 。 将值fred分配给变量将产生 http://www.example.com/users/fred。
在Spring MVC中,您可以在方法参数上使用@PathVariable批注将其绑定到URI模板变量的值:
@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET) public String findOwner(@PathVariable String ownerId, Model model) { Owner owner = ownerService.findOwner(ownerId); model.addAttribute("owner", owner); return "displayOwner"; }
URI模板“ / owners / {ownerId}”指定变量名称ownerId。当控制器处理此请求时,ownerId的值将设置为在URI的相应部分中找到的值。例如,当请求/ owners / fred时,ownerId的值为fred。