📜  Spring MVC - 号码验证(1)

📅  最后修改于: 2023-12-03 14:47:33.635000             🧑  作者: Mango

Spring MVC - 号码验证

在Web应用程序中,我们通常需要对用户输入的数据进行验证。其中一个常见的验证是验证电话号码,用于确保用户输入的是有效的电话号码。

在Spring MVC中,我们可以使用@Valid注解和BindingResult对象来验证用户提交的电话号码。

创建模型

首先,我们需要一个模型来接收用户提交的电话号码。可以创建一个名为PhoneNumber的POJO类,如下所示:

public class PhoneNumber {

    @Pattern(regexp="^1[3|4|5|7|8][0-9]\\d{8}$", message="Invalid phone number")
    private String number;

    public String getNumber() {
        return number;
    }

    public void setNumber(String number) {
        this.number = number;
    }
}

在上面的代码中,我们使用了@Pattern注解来指定一个正则表达式,以验证电话号码是否有效。如果电话号码无效,将返回错误消息"Invalid phone number"。

创建控制器

接下来,我们需要创建一个控制器来处理提交的电话号码并进行验证。我们可以将@Valid注解添加到控制器方法中的电话号码参数上,以便Spring MVC在调用该方法之前验证电话号码。如果电话号码无效,将抛出MethodArgumentNotValidException异常。同时,我们还需要一个BindingResult对象来获取错误消息。

@Controller
public class PhoneNumberController {

    @PostMapping("/phone/validate")
    public String validatePhoneNumber(@Valid @ModelAttribute("phoneNumber") PhoneNumber phoneNumber, BindingResult result) {
        if(result.hasErrors()) {
            return "phoneError";
        }
        return "phoneSuccess";
    }

}

在上面的代码中,我们使用了@PostMapping注解来将验证电话号码的操作绑定到HTTP POST请求。@ModelAttribute注解用于绑定表单提交的电话号码到我们的PhoneNumber模型中。

如果有错误发生,我们将返回名为"phoneError"的视图。否则,我们将返回名为"phoneSuccess"的视图。

创建视图

最后,我们需要创建两个视图:一个用于显示电话号码验证错误的消息,另一个用于显示验证成功的消息。我们可以使用以下HTML代码来创建这两个视图:

<!-- 用于显示电话号码验证错误的视图 -->
<!DOCTYPE html>
<html>
<head>
    <title>Phone Validation Error</title>
</head>
<body>
    <h2>Phone Validation Error</h2>
    <p>Invalid phone number. Please try again.</p>
</body>
</html>

<!-- 用于显示电话号码验证成功的视图 -->
<!DOCTYPE html>
<html>
<head>
    <title>Phone Validation Success</title>
</head>
<body>
    <h2>Phone Validation Success</h2>
    <p>Thank you for submitting a valid phone number.</p>
</body>
</html>
测试应用程序

现在,我们已经完成了一个简单的电话号码验证应用程序。我们可以启动该应用程序并在浏览器中提交一个电话号码,看看它是否能够成功进行验证。

在启动应用程序后,在浏览器中输入以下URL:http://localhost:8080。您应该会看到一个表单,其中包含一个电话号码输入框。输入一个无效的电话号码(例如:"12345678901"),然后单击“提交”按钮。应该会显示一个错误消息,指出输入的电话号码无效。

现在,请输入一个有效的电话号码(例如:"13812345678"),然后单击“提交”按钮。您应该会看到一个成功消息,表示您输入的电话号码是有效的。

总结

本教程介绍了如何在Spring MVC中验证电话号码。我们使用了@Valid注解和BindingResult对象,以确保只有有效的电话号码才会被接受。我们还创建了两个视图,用于显示成功或失败的消息。