我正面臨一個問題,我不知道它發生了什麼.. 我在JSP頁面中做了一個小腳本來檢查一個簡單的條件,如果有一個會話,那麼它做了一些事情,如果沒有它應該只是重定向頁面。 但是會發生什麼是我不能真正解釋的東西..如果條件正在做一件非常奇怪的事情!如果條件失靈? JSP腳本
這裏是一個示例代碼:
<%
boolean err = false;
if(session.getAttribute("id") != null)
{
cus_id = session.getAttribute("id").toString();
err=false;
}else err=true;
out.println(err);
if (err) out.println("<br>There is no session<br>");
//if(!err) ############ where it goes completely wrong.##############
if(1==2)
{
statement = "SELECT * FROM flight WHERE fl_code = '"+fco+"'";
flight = getData(statement);
statement = "SELECT * FROM tickets WHERE tik_cus_id ='"+cus_id+"' AND tik_fl_id ='"+flight[0][0]+"'";
ticket = getData(statement);
if(ticket.length == 0)
{
statement = "INSERT INTO tickets VALUES(null,'"+ session.getAttribute("id")+
"','"+flight[0][0]+
"','"+cls+"','"+seat+
"','"+adul+"','"+chil+
"','"+infa+"','"+pric+"','N')";
lastId = insertData(statement);
}
if(ticket.length==4) //if error occurs
{
out.println("<br><br>"+ticket[0]+"<hr>");
out.println(ticket[1]+"<br>");
out.println(ticket[2]+"<br>");
out.println(ticket[3]+"<br>");
}
response.sendRedirect("../../confirm.jsp?fco="+flight[0][0]);
} else out.println("no session");//else response.sendRedirect("../../login.jsp");
%>
在不遠的地方我所指的條件是if(!err)
我得到這個錯誤
`rg.apache.jasper.JasperException: Unable to compile class for JSP:
An error occurred at line: 50 in the jsp file: /scripts/jsp/confirm.jsp
The local variable cus_id may not have been initialized
47: statement = "SELECT * FROM flight WHERE fl_code = '"+fco+"'";
48: flight = getData(statement);
49:
50: statement = "SELECT * FROM tickets WHERE tik_cus_id ='"+cus_id+"' AND tik_fl_id ='"+flight[0][0]+"'";
51: ticket = getData(statement);
52:
53: if(ticket.length == 0)`
這是顯而易見的,因爲沒有會話,並cus_id
來自會議。 但是當我使病情if(1==2)
這是輸出: true There is no session no session
正如你可以看到有沒有會話..我100%肯定我沒有會話,但在條件if(!err)
(所以當犯錯是錯誤,當沒有會話時觸發錯誤)它會進入內部,但它清楚地輸出有錯誤,但它進入條件內部以嘗試執行代碼..但是當我把if(1==2)
條件顯然是錯誤的它不.. 我嘗試使用整數,字符串,字符,甚至雙和浮動,但每當一個變量進入條件,它只是通過它爲真,當它不是..但它承認if(1==2)
或其他類似的情況爲假。
這是怎麼回事?這是絕對沒有意義 我使用的是Tomcat7服務器,我現在使用的代碼幾個小時左右,它只是沒有任何意義,從任何方式,我想它..我所有的嘗試是徒勞的
請幫助
因此,基本上,因爲它是一個JSP頁面,它仍然通過它? 不幸的是,我沒有時間去創建所有這些servlet類並對它們進行測試..我認爲這是我最後一次這樣做。但我需要儘快完成。 我也嘗試了你多次提出的建議,在if條件下的所有塊都沒有真正幫助,是否有解決方法? 「你不記得犯錯」是什麼意思? – bakz