当前位置: 首页 > 知识库问答 >
问题:

String类型的方法参数缺少URI模板变量

濮阳茂材
2023-03-14

这就是我的REST控制器的样子

@RequestMapping(method = GET, path = "/type/{eventtype}/events")
@ResponseBody
public ResponseEntity<?> getEventsSpecificType(@PathVariable String eventType) throws InvalidRequestException {
    return ResponseRestBuilder.createSuccessResponse(
            portEventRepository.
                    findByEventTypeOrderByTimestampAsc
                            (eventType));
}

使用以下URI从Postman调用它

http://localhost:8181/type/default/events

得到这个错误

{
"timestamp": 1518605163296,
"status": 500,
"error": "Internal Server Error",
"exception": "org.springframework.web.bind.MissingPathVariableException",
"message": "Missing URI template variable 'eventType' for method parameter of type String",
"path": "/type/default/events"

}

我错过了什么?字符串变量的映射不正确吗?

共有1个答案

陈君之
2023-03-14

您必须给出路径变量的名称,method参数的名称并不重要。并且path变量的名称必须与path中使用的名称(eventtype)完全匹配。

getEventsSpecificType(@PathVariable("eventtype") String eventType)

如果不指定@PathVariable,名称必须与路径中使用的名称完全匹配。因此将eventType方法参数更改为eventType。

 类似资料:
  • 我正在尝试获取并尝试在列表中传递它,但它显示为缺少URI模板变量!为什么会这样?

  • 我尝试在此方法中传递一个参数 我有一个错误 我在我的前端呼叫这个请求 然后出现了一个错误..

  • 我试图用flutter插件HTTP发出HTTP POST请求,但我得到了一个标题错误。有人知道这是什么原因吗?因为在我的其他应用程序中,这工作得非常好?

  • 在C++11之前,类模板和函数模板只能含有固定数量的模板参数。C++11增强了模板功能,允许模板定义中包含0到任意个模板参数,这就是可变参数模板。可变参数模板的加入使得C++11的功能变得更加强大,而由此也带来了许多神奇的用法。 可变参数模板 可变参数模板和普通模板的语义是一样的,只是写法上稍有区别,声明可变参数模板时需要在typename或class后面带上省略号...: template<ty

  • 变量通用属性 变量通用属性有title,value,type,tip,rule,message,除了通用属性个别变量还有其它属性,请看每个具体控件; "vars": { "varName1": { "title": "测试 text", /*后台设置时 input 的 label*/ "value": "1", /*变量默认值*/ "type

  • 变量通用属性 变量通用属性有title,value,type,tip,rule,message,除了通用属性个别变量还有其它属性,请看每个具体控件; "vars": { "varName1": { "title": "测试 text", /*后台设置时 input 的 label*/ "value": "1", /*变量默认值*/ "type