Hir*_*oki 3 jsp servlets http-request-parameters
我发现这个问题令人困惑(但也很有趣),我想向这里的人寻求见解。
我一直在自学JSP和相关技术。我要做的是从JSP到servlet检索参数,然后将它们与If()结合使用。这是我的编码的一部分。
if ((request.getParameter("ID_A") != null || request.getParameter("Password_A") != null) &&
(request.getParameter("ID_B") != null || request.getParameter("Password_B") != null)) {
errorMessage = "Information is detected for the both side";
request.setAttribute("errorMessage", errorMessage);
request.getRequestDispatcher("4_enter_personal_info.jsp").forward(request, response);
} // Other conditions...
Run Code Online (Sandbox Code Playgroud)
这是JSP的一部分(上一步)
<form action="PersonalInfor_to_confirmation_servlet" method="POST">
<h2>For an existing customer</h2>
<p>Customer ID</p>
<input type="text" name="ID_A" value="" />
<p>Password</p>
<input type="text" name="Password_A" value="" />
<br>
<h2>For a new customer</h2>
<p>Set your customer ID</p>
<input type="text" name="ID_B" value="" />
<p>Set your password</p>
<input type="text" name="Password_B" value="" />
//There are other lines
</form>
Run Code Online (Sandbox Code Playgroud)
我努力确保当客户在双方(For an existing customer/For a new customer)上输入信息时,"Information is detected for the both side"JSP上都将显示以上消息。
但是,即使所有文本框都是空白,也会出现错误消息。因此,request.getParameter( )即使我将它们设置为空,上述所有方法也不包含空值。
即使我可以提出其他算法,我也想知道这种现象发生的原因。
任何建议将被认真考虑。
该if块中的语句运行的原因是因为该字段存在。如果您不想在文本框为空时运行它,则应在条件中检查该参数是否包含空字符串,例如:
request.getParameter("ID_A") != null && !request.getParameter("ID_A").isEmpty()
|| request.getParameter("Password_A") && !request.getParameter("Password_A").isEmpty()
...
Run Code Online (Sandbox Code Playgroud)
因此,即使我将它们设为空,上述所有request.getParameter()方法也不包含空值。
是。当getParamater()返回一个null值时,表示它无法在表单中找到具有该名称的字段。使用另一种方法:isEmpty()检查字段是否为空。如:
request.getParameter("noSuchField")==null //true
request.getParameter("ID_A")==null //false
request.getParameter("ID_A").isEmpty() //true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18006 次 |
| 最近记录: |