我是JSP的新手,我在使用以下代码时遇到了一些问题:
<%@ page contentType="text/html;charset=Big5" %>
<html>
<head>
<title></title>
</head>
<body>
<form method="post" action="InsertStudent.jsp">
<input type="text" size="20" name="txtName" />
<input type="text" size="20" name="txtDob" />
<input type="text" size="20" name="txtProStudied" />
<input type="submit" name="B1" value="Submit" />
</form>
<%
if (request.getParameter("txtName") !="" && request.getParameter("txtDob") != "" && request.getParameter("txtProStudied") != "" ) {
out.println("...bypass the if....statement");
}
%>
</body>
</html>
如果运行此代码,out.println将触发甚至3输入框都有值..
答案 0 :(得分:3)
因为request.getParameter返回一个字符串,所以不能使用!=运算符。您必须使用相同的功能。 request.getParameter的返回值也可能为null。你也需要检查一下。
if (request.getParameter("txtName") != null && !"".equals(request.getParameter("txtName"))
&& request.getParameter("txtDob") != null && !"".equals(request.getParameter("txtDob"))
&& request.getParameter("txtProStudied") != null && !"".equals(request.getParameter("txtProStudied"))) {
out.println("...bypass the if....statement");
}
定义一个函数来测试返回值是空字符串还是null来减少代码是理想的。
public boolean isEmpty(String s)
{
return (null == s || "".equals(s.trim()))
}
答案 1 :(得分:0)
也许试试:
if (request.getParameter("txtName").equals("")) { }
或.compareTo()或.compareToIgnoreCase()