gpt4 book ai didi

Spring @MVC和@RequestParam验证

转载 作者:行者123 更新时间:2023-12-04 09:56:48 27 4
gpt4 key购买 nike

我想像这样使用@RequestParam批注:

@RequestMapping
public void handleRequest( @RequestParam("page") int page ) {
...
}

但是,如果用户摆弄URL参数并尝试转到页面“abz”或非数字内容,我想显示第1页。现在,我能使Spring做的最好的事情就是返回500。是否有一种方法可以干净地重写此行为,而不必将参数作为String接收?

我查看了@ExceptionHandler批注,但是当我设置为 @ExceptionHandler(TypeMismatchException.class)时,它似乎没有任何作用。不知道为什么不。

有什么建议吗?

P.S.额外的问题:Spring MVC被称为Spring MVC。带注释的Spring MVC是否仅称为Spring @MVC? Google将它们视为相同的名称,这很烦人。

最佳答案

从Spring 3.0开始,您可以设置ConversionService@InitBindervalue指定一个特定参数,以将该服务应用于:

@InitBinder("page")
public void initBinder(WebDataBinder binder) {
FormattingConversionService s = new FormattingConversionService();
s.addFormatterForFieldType(Integer.class, new Formatter<Integer>() {
public String print(Integer value, Locale locale) {
return value.toString();
}

public Integer parse(String value, Locale locale)
throws ParseException {
try {
return Integer.valueOf(value);
} catch (NumberFormatException ex) {
return 1;
}
}
});
binder.setConversionService(s);
}

关于Spring @MVC和@RequestParam验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2287381/

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