栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

对路径变量使用MVC类型转换,并在空参数上返回404

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

对路径变量使用MVC类型转换,并在空参数上返回404

在类型转换之后,在控制器的方法之前,需要进行验证。您可以实现自定义验证器并在其中引发异常。将新的验证器添加到

DataBinder
,并将方法的参数标记为
@Validated

@RestControllerpublic class ClientApiController {    @InitBinder    public void initBinder(DataBinder binder){        binder.addValidators(new Validator() { @Override public boolean supports(Class<?> aClass) {     return aClass==Client.class; } @Override public void validate(Object o, Errors errors) {     Client client = (Client)o;     if(client.getId()==null) throw new ResourceNotFoundException(); }        });    }    @RequestMapping(path = "/{client}/someaction", method = RequestMethod.GET)    String handleRequest(@Validated @Exists Client client) {        // ...    }    @RequestMapping(path = "/{client}/anotheraction", method = RequestMethod.GET)    String handleAnotherRequest(@Validated @Exists Client client) {        // ...    }}

当然,您可以将验证器声明为单独的类,并在其他控制器中重复使用它。实际上,您可以在转换器中引发异常,但是有可能在应用程序的其他位置毫无例外地需要转换。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/417139.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号