Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsp If-else语句逻辑错误_Jsp_Servlets_If Statement - Fatal编程技术网

Jsp If-else语句逻辑错误

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

我的问题是我的程序忽略了else语句。例如,用户没有在字段中输入任何内容,而是单击了submit按钮,应该执行else下的语句。但它没有做它应该做的。我被困在这里,找不到我的代码有什么问题。我曾尝试在Eclipse中使用调试器对其进行调试,它表明即使某些字段为null,它仍会继续执行if语句下的语句

index.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>

输入乘客姓氏:

输入乘客姓名:

目的地: 奎松大道 格玛·卡穆宁 古巴 圣特兰 加斯 肖大道 博尼大道 瓜达卢佩 布恩迪亚 阿亚拉 马加兰 塔夫特大道

信用卡号码:

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是布尔函数时)