小编典典

使用enctype =“ multipart / form-data”时,请求getParameter始终为null

jsp

我正在对输入的数据(例如电子邮件,密码,名称等)进行验证。但是,我已经停留在验证的第一阶段,即检查用户是否未输入任何内容。

我已经添加enctype="multipart/form-data"了此处提到的内容,但是现在它始终可以识别emailnull,如果成功(当电子邮件不为null时),我将无法转发到登录页面。


signup.jsp

<form method="POST" action="signup" enctype="multipart/form-data">
    <input type="email" name="email" placeholder="tonystark@mail.com">
    <input type="submit" value="Submit">
</form>

SignUpAction.java

public class SignUpAction implements Action {

@Override
public String handleRequest(HttpServletRequest req, HttpServletResponse resp, DAOFactory dao)
        throws ServletException, IOException {

        String email = req.getParameter("email");

        if (email == null || email.isEmpty()) {
            return "signup";   // It loads signup page again (it works)
        }

        return "login";   // It should go to the login page (it doesn't work)
    }

}

阅读 566

收藏
2020-06-08

共1个答案

小编典典

除非您打算使用表单上载文件,否则不需要指定“ multipart / form-data”的编码类型。

<form method="POST" action="signup">
    <input type="text" name="email" placeholder="tonystark@mail.com">
     <input type="submit" value="Submit">
</form>

链接的最后一段指出:

“使用enctype =“ multipart / form-
data”时,所有参数都在请求正文中进行编码。这意味着request.getParameter(…)然后将为所有发布的参数返回null。”

输入类型:电子邮件

电子邮件是html5输入类型。如何使用新的电子邮件,URL和电话输入类型

2020-06-08