使用弹簧靴开发应用程序。在REST控制器中,我更喜欢使用路径变量(@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);
}
}
URL
http://localhost:8080/user/item/{john}
输入控制器
{john}
答案 0 :(得分:41)
使用http://localhost:8080/user/item/john
代替提交您的请求。
你给Spring一个值#34; {john}"到路径变量loginName
,所以Spring用" {}"
URI模板模式
URI模板可用于方便地访问a的选定部分 @RequestMapping方法中的URL。
URI模板是类似URI的字符串,包含一个或多个变量 名。 当您为这些变量替换值时,模板 成为URI 。建议的URI模板RFC定义了URI的方式 参数。例如,URI模板 http://www.example.com/users/ {userId} 包含变量userId 。 将值fred赋值给变量yield 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模板" /所有者/ {OWNERID}"指定变量名称 OWNERID。当控制器处理此请求时,值为 ownerId设置为URI的相应部分中找到的值。 例如,当一个请求进入/ owners / fred时,其值为 ownerId是弗雷德。