Spring引导版本:2.4.0转换器类
import java.util.UUID;
import org.springframework.core.convert.converter.Converter;
import org.springframework.lang.NonNull;
import org.springframework.stereotype.Component;
@Component
public class StringToUuidConverter implements Converter<String, UUID> {
@Override
public UUID convert(@NonNull String uuid) {
return UUID.fromString(uuid);
}
}控制器
....
@Autowired
TestRepos testRepos;
@RequestMapping("test")
public Task t( UUID uuid) {
return this.testRepos.findById(uuid).orElse(null);
}
....用http://localhost:9090/test?uuid=0459828a-a630-491d-80b9-ab9a412f066e调用控制器
错误日志
"error": "Bad Request",
"trace": "org.springframework.web.method.annotation.ModelAttributeMethodProcessor$1: org.springframework.validation.BeanPropertyBindingResult: 2 errors\nField error in object 'UUID' on field 'mostSigBits': rejected value [null]; codes [typeMismatch.UUID.mostSigBits,typeMismatch.mostSigBits,typeMismatch.long,typeMismatch];有没有漏掉配置?
发布于 2021-02-16 20:01:45
试一试:
public Task t(@RequestParam UUID uuid) {
// ...
}任何其他论点: 如果方法参数与此表中的任何前面的值不匹配,并且它是一个简单类型(如
BeanUtils#isSimpleProperty所确定的那样),则它是一个解析为@RequestParam的类型。否则,它将被解析为一个@ModelAttribute。
此外,您不需要自己创建StringToUuidConverter类。它已经包括在内了。
https://stackoverflow.com/questions/66221972
复制相似问题