Jsp If-else语句逻辑错误
我的问题是我的程序忽略了else语句。例如,用户没有在字段中输入任何内容,而是单击了submit按钮,应该执行else下的语句。但它没有做它应该做的。我被困在这里,找不到我的代码有什么问题。我曾尝试在Eclipse中使用调试器对其进行调试,它表明即使某些字段为null,它仍会继续执行if语句下的语句 index.jsp文件:Jsp If-else语句逻辑错误,jsp,servlets,if-statement,Jsp,Servlets,If Statement,我的问题是我的程序忽略了else语句。例如,用户没有在字段中输入任何内容,而是单击了submit按钮,应该执行else下的语句。但它没有做它应该做的。我被困在这里,找不到我的代码有什么问题。我曾尝试在Eclipse中使用调试器对其进行调试,它表明即使某些字段为null,它仍会继续执行if语句下的语句 index.jsp文件: <body> <div id="mainContainer"> <form action="processfare.jsp" meth
<body>
<div id="mainContainer">
<form action="processfare.jsp" method="post">
<p>Enter passenger last name: <input type="text" name="lname" size="25"></p>
<p>Enter passenger first name: <input type="text" name="fname" size="25"></p>
<p>Destination:
<select name="dest" size="1">
<option>Quezon Avenue</option>
<option>GMA Kamuning</option>
<option>Cubao</option>
<option>Santolan</option>
<option>Ortigas</option>
<option>Shaw Boulevard</option>
<option>Boni Avenue</option>
<option>Guadalupe</option>
<option>Buendia</option>
<option>Ayala</option>
<option>Magallanes</option>
<option>Taft Avenue</option>
</select></p>
<p>Credit Card Number: <input type="text" name="ccnum" size="25"></p>
<input type="submit" value="Submit">
</form>
</div>
</body>
<body>
<%
if (request.getParameter("lname") != null || request.getParameter("lname") != "" &&
request.getParameter("fname") != null || request.getParameter("fname") != "" &&
request.getParameter("dest") != null || request.getParameter("dest") != "" &&
request.getParameter("ccnum").trim().length() > 0 ) {
passBean.setLname(request.getParameter("lname"));
passBean.setFname(request.getParameter("fname"));
passBean.setDestination(request.getParameter("dest"));
passBean.setCCnum(request.getParameter("ccnum"));
if (passBean.luhnTest(request.getParameter("ccnum"))==true){ %>
<% passBean.procStation(); %>
<%PDFDisplay.generatePDF(passBean); %>
<p>The fare amount to <%=passBean.dest %> from North Avenue Station is: P<%=passBean.fare %></p>
<p>Please remember to alight at <%=passBean.stop%></p><br>
<p>LIST OF FARE PROFITS</p>
<p>
TOTAL FARE FOR ALL STOP 1: P<%=passBean.totalFare1 %><br>
TOTAL FARE FOR ALL STOP 2: P<%=passBean.totalFare2 %><br>
TOTAL FARE FOR ALL STOP 3: P<%=passBean.totalFare3 %><br>
TOTAL FARE FOR ALL STOP 4: P<%=passBean.totalFare4 %><br>
TOTAL FARE FOR ALL STOP 5: P<%=passBean.totalFare5 %><br>
TOTAL FARE FOR ALL STOP 6: P<%=passBean.totalFare6 %>
</p>
<form action="index.jsp">
<input type="submit" value="<< GO BACK >>">
</form>
<% } else { %>
<p> Please enter a valid credit card number.</p>
<p>Click <a href = "index.jsp">here</a> to try again.</p>
<% } %>
<% } else {
throw new ServletException ("Invalid input. Please try again");
} %>
</body>
输入乘客姓氏:
输入乘客姓名:
目的地:
奎松大道
格玛·卡穆宁
古巴
圣特兰
加斯
肖大道
博尼大道
瓜达卢佩
布恩迪亚
阿亚拉
马加兰
塔夫特大道
信用卡号码:
processfare.jsp文件:
<body>
<div id="mainContainer">
<form action="processfare.jsp" method="post">
<p>Enter passenger last name: <input type="text" name="lname" size="25"></p>
<p>Enter passenger first name: <input type="text" name="fname" size="25"></p>
<p>Destination:
<select name="dest" size="1">
<option>Quezon Avenue</option>
<option>GMA Kamuning</option>
<option>Cubao</option>
<option>Santolan</option>
<option>Ortigas</option>
<option>Shaw Boulevard</option>
<option>Boni Avenue</option>
<option>Guadalupe</option>
<option>Buendia</option>
<option>Ayala</option>
<option>Magallanes</option>
<option>Taft Avenue</option>
</select></p>
<p>Credit Card Number: <input type="text" name="ccnum" size="25"></p>
<input type="submit" value="Submit">
</form>
</div>
</body>
<body>
<%
if (request.getParameter("lname") != null || request.getParameter("lname") != "" &&
request.getParameter("fname") != null || request.getParameter("fname") != "" &&
request.getParameter("dest") != null || request.getParameter("dest") != "" &&
request.getParameter("ccnum").trim().length() > 0 ) {
passBean.setLname(request.getParameter("lname"));
passBean.setFname(request.getParameter("fname"));
passBean.setDestination(request.getParameter("dest"));
passBean.setCCnum(request.getParameter("ccnum"));
if (passBean.luhnTest(request.getParameter("ccnum"))==true){ %>
<% passBean.procStation(); %>
<%PDFDisplay.generatePDF(passBean); %>
<p>The fare amount to <%=passBean.dest %> from North Avenue Station is: P<%=passBean.fare %></p>
<p>Please remember to alight at <%=passBean.stop%></p><br>
<p>LIST OF FARE PROFITS</p>
<p>
TOTAL FARE FOR ALL STOP 1: P<%=passBean.totalFare1 %><br>
TOTAL FARE FOR ALL STOP 2: P<%=passBean.totalFare2 %><br>
TOTAL FARE FOR ALL STOP 3: P<%=passBean.totalFare3 %><br>
TOTAL FARE FOR ALL STOP 4: P<%=passBean.totalFare4 %><br>
TOTAL FARE FOR ALL STOP 5: P<%=passBean.totalFare5 %><br>
TOTAL FARE FOR ALL STOP 6: P<%=passBean.totalFare6 %>
</p>
<form action="index.jsp">
<input type="submit" value="<< GO BACK >>">
</form>
<% } else { %>
<p> Please enter a valid credit card number.</p>
<p>Click <a href = "index.jsp">here</a> to try again.</p>
<% } %>
<% } else {
throw new ServletException ("Invalid input. Please try again");
} %>
</body>
0 ) {
setLname(request.getParameter(“lname”);
setFname(request.getParameter(“fname”);
setDestination(request.getParameter(“dest”));
setCCnum(request.getParameter(“ccnum”);
if(passBean.luhnTest(request.getParameter(“ccnum”)==true){%>
从北大街站到的车费为:p
请记住在
车费利润表
所有站点1的总票价:P
所有站点2的总票价:P
所有站点3的总票价:P
全站4的总票价:P
所有站点5的总票价:P
所有站点的总票价6:P
请输入有效的信用卡号
单击以重试
所有的OR(| |)都应该是AND(&&)
你的ors“| |”创造了一些奇怪的逻辑
顺便说一句,xxx.trim().length()>0可能比!=''更好。您可以像这样尝试您的if条件
if (request.getParameter("lname") != null && request.getParameter("lname") != "" && request.getParameter("fname") != null && request.getParameter("fname") != "" && request.getParameter("dest") != null && request.getParameter("dest") != "" && request.getParameter("ccnum").trim().length() > 0 ) {
您也可以在if中添加括号:
if ((request.getParameter("lname") != null || request.getParameter("lname") != "") &&
(request.getParameter("fname") != null || request.getParameter("fname") != "") &&
(request.getParameter("dest") != null || request.getParameter("dest") != "") &&
request.getParameter("ccnum").trim().length() > 0 )
好的,请给我们看一个(示例)请求…因为如果你没有在“else”中登陆,可能是因为登陆“if”…(逻辑上)或者更确切地说是由于
passBean.luhnTest(request.getParameter(“ccnum”)==true
!?(顺便说一句:==true
在这里是多余的…当luhnTest是布尔函数时)