gpt4 book ai didi

java - Spring @PathVariable 作为一年

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:52:55 26 4
gpt4 key购买 nike

我有一个端点是:

api/entities/{year}

我的函数是这样的:

get(@PathVariable(name = "year") Year year)

但是,当我尝试到达终点时,我预计会收到无法从 String 类型转换为 Year 类型的错误。我显然需要类似 @DateTypeFormat 的东西,但这实际上不起作用。

有没有办法将传入值的格式设置为年份,或者我是否应该修改我的 API 以不使用年份?

最佳答案

你可以这样做:

public class YearHandlerMethodArgumentResolver implements HandlerMethodArgumentResolver {

@Override
public boolean supportsParameter(MethodParameter methodParameter) {
return methodParameter.getParameterType().equals(Year.class);
}

@Override
public Object resolveArgument(MethodParameter methodParameter,
ModelAndViewContainer modelAndViewContainer,
NativeWebRequest nativeWebRequest,
WebDataBinderFactory webDataBinderFactory) throws Exception {
final String yearFromPath = nativeWebRequest.xxx();

return Year.from(yearFromPath);
}

}

然后在你的 spring-context 中注册它

关于java - Spring @PathVariable 作为一年,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49859241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com