首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >弹簧引导UUID转换器

问弹簧引导UUID转换器
EN

Stack Overflow用户
提问于 2021-02-16 09:42:12
回答 1查看 1.6K关注 0票数 0

Spring引导版本:2.4.0转换器类

代码语言:javascript
复制
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);
    }
}

控制器

代码语言:javascript
复制
....
@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调用控制器

错误日志

代码语言:javascript
复制
"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];

有没有漏掉配置?

EN

回答 1

Stack Overflow用户

发布于 2021-02-16 20:01:45

试一试:

代码语言:javascript
复制
public Task t(@RequestParam UUID uuid) {
    // ...
}

任何其他论点: 如果方法参数与此表中的任何前面的值不匹配,并且它是一个简单类型(如BeanUtils#isSimpleProperty所确定的那样),则它是一个解析为@RequestParam的类型。否则,它将被解析为一个@ModelAttribute。

此外,您不需要自己创建StringToUuidConverter类。它已经包括在内了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66221972

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档