【问题标题】:JSP validation with java class使用 java 类进行 JSP 验证
【发布时间】:2012-07-18 08:55:54
【问题描述】:

如何通过 java 类 ( servlet ) 验证 jsp 页面并根据结果向前或返回错误消息?

提前致谢。

【问题讨论】:

    标签: java validation jsp servlets


    【解决方案1】:
    • 将表单从 jsp 发布到 setvlet
    • 在servlet的doPost()中,接收数据
    • 对收到的数据进行验证

    如果验证正确,有条件地将请求转发到成功页面,或者在验证失败的情况下,在请求属性中设置错误消息并再次将请求转发到 FORM 页面

    For example

    // Prepare messages.
    Map<String, String> messages = new HashMap<String, String>();
    request.setAttribute("messages", messages);
    
    // Get and validate name.
    String name = request.getParameter("name");
    if (name == null || name.trim().isEmpty()) {
        messages.put("name", "Please enter name");
    } else if (!name.matches("\\p{Alnum}+")) {
        messages.put("name", "Please enter alphanumeric characters only");
    }
    
    // Get and validate age.
    String age = request.getParameter("age");
    if (age == null || age.trim().isEmpty()) {
        messages.put("age", "Please enter age");
    } else if (!age.matches("\\d+")) {
        messages.put("age", "Please enter digits only");
    }
    
    // No validation errors? Do the business job!
    if (messages.isEmpty()) {
        messages.put("success", String.format("Hello, your name is %s and your age is %s!", name, age));
    }
    
    request.getRequestDispatcher("/WEB-INF/hello.jsp").forward(request, response);
    

    See detailed information

    【讨论】:

    • 并且我必须将 servlet 的名称放在表单的 action 属性中?
    • 不是名称、解析该 servlet 的 URL、您在 web.xml 中定义的 URL 映射或使用注释
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 2014-03-08
    • 2014-11-09
    相关资源
    最近更新 更多