错误解析模板-网址映射失败

时间:2018-12-23 16:43:55

标签: rest spring-boot thymeleaf

我收到以下错误消息:

  

错误解析模板[catalog / getCatalogItemFromCatalog / catalogItemId / 3916677],模板可能不存在,或者任何已配置的模板解析器都无法访问

我正在尝试使用此URL来获得我的服务和方法:

 http://192.168.99.100:31003/catalog/getCatalogItemFromCatalog/catalogItemId/3916677
  

控制器:

@Controller
@RequestMapping("catalog")
public class CatalogController {

    @GetMapping("/getCatalogItemFromCatalog/catalogItemId/{catalogItemId}")
    public CatalogItem getCatalogItemFromCatalog(@PathVariable Integer catalogItemId){
        List<Catalog> catalogs = getAllCatalogs();
        Optional<CatalogItem> optionalCatalogItem = Optional.empty();
        for(Catalog catalog : catalogs){
            optionalCatalogItem = catalog.getCatalogItems().stream().filter(it -> it.getCatalogItemId().equals(catalogItemId)).findFirst();
        }
        return optionalCatalogItem.orElse(null);
    }

    @GetMapping("/system/ipaddr")
    public String getIpAddr() {
        List<String> response;
        response = runSystemCommandAndGetResponse(IP_ADDR);
        return new Gson().toJson(response);
    }
}

当我卷曲时

http://192.168.99.100:31003/catalog/system/ipaddr

我没有问题。 我现在测试了几个小时,似乎什么也没用,我也不知道为什么它失败了。

1 个答案:

答案 0 :(得分:2)

您的类上有@Controller,这意味着spring会尝试使用所有可用的templateResolvers来解析控制器内部所有方法的返回类型。

通过使用@ResponseBody spring将返回类型直接包装在响应中(转换后),然后将其返回给客户端,这类似于使用@RestController而不是@Controller