Html 修复自定义错误页面规避和RequestParam验证

Html 修复自定义错误页面规避和RequestParam验证,html,spring,Html,Spring,我正在努力做到这一点,这样我的用户就不可能进入错误页面400。我有以下作为视图侧输入字段: <input type="number" min="0" name="id" class="form-control" id="id"> 我认为有两种可能的方法来解决这个问题: 在视图=>中识别值,可能会添加额外的配置,因此不接受2.0和1,00之类的值。但我还没有找到这样做的方法 或者我应该尝试在spring端处理它=>验证RequestParam。有没有一种不使用bean验证而是以类似方

我正在努力做到这一点,这样我的用户就不可能进入错误页面400。我有以下作为视图侧输入字段:

<input type="number" min="0" name="id" class="form-control" id="id">
我认为有两种可能的方法来解决这个问题:

在视图=>中识别值,可能会添加额外的配置,因此不接受2.0和1,00之类的值。但我还没有找到这样做的方法

或者我应该尝试在spring端处理它=>验证RequestParam。有没有一种不使用bean验证而是以类似方式验证请求参数的方法?使用Bean验证并创建一个只用于验证长字段的对象不是有点可笑吗


我还想知道验证RequestParams的标准方法通常是什么,如果只有一个字段,就不必创建JavaBean,这似乎毫无意义。

正如您所指出的,Spring在将某些数字格式转换为长格式时遇到了麻烦。适用于大多数格式的解决方案是在函数中接受字符串,并使用标准库将输入转换为长字符串

试着这样做:

public ModelAndView addItem(@RequestParam("id") String userID){
    Long id = -1;
    try {
        id = Long.parseLong(userID);
    } catch (NumberFormatException e){
        //handle error
    }
    if(id != -1){
        //continue  
    }
    //return ...
}
public ModelAndView addItem(@RequestParam("id") String userID){
    Long id = -1;
    try {
        id = Long.parseLong(userID);
    } catch (NumberFormatException e){
        //handle error
    }
    if(id != -1){
        //continue  
    }
    //return ...
}