我正在对输入的数据进行验证,例如电子邮件,密码,姓名等。但我已经停留在验证的第一阶段,即检查用户是否输入任何内容。
我已按照here添加了enctype="multipart/form-data"
,但现在它始终将email
识别为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)
}
}
答案 0 :(得分:1)
由于它是一个multipart / form-data(通常用于上传一个/多个文件),request.getParameter()
方法将始终返回null
。
你可以尝试
<form method="POST" action="signup" enctype="application/x-www-form-urlencoded">
或者完全删除enctype
参数。
另一个SO问题中的一些参考文献。
答案 1 :(得分: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输入类型。 How To Use The New Email, URL, and Telephone Input Types