我有一个不起作用的请求
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp" />
<gradient
android:angle="-90"
android:centerColor="#660D1E4A"
android:endColor="#66011444"
android:startColor="#66505E7F"
android:type="linear"
/>
<stroke
android:dashGap="0dp"
android:dashWidth="0dp"
android:width="1dp"
android:color="#ffffffff" />
</shape>
有我的端点配置
http://localhost:8070/promo/lock/1?reason=CONSUMED
我得到了例外
rg.springframework.web.bind.ServletRequestBindingException:丢失 对于Long
类型的方法参数,URI模板变量'id'
这有什么问题?
答案 0 :(得分:0)
如果方法参数的名称与路径变量的名称完全匹配,那么可以通过使用没有值的@PathVariable来简化它: 所以这是正确的:
public void unlock(Authentication authentication, @RequestParam(value = "reason") UnlockReason reason, @PathVariable Long id)
如果您想给它一些其他名称,您需要通过以下方式执行此操作:
public void unlock(Authentication authentication, @RequestParam(value = "reason") UnlockReason reason, @PathVariable("id") Long number)