2013-08-27 40 views
0

我是一個初學者。我知道這是基本的。在我的項目中,我使用Java和MySQL工作臺。我通過使用選擇框從數據庫中讀取數據,使用ajax。 的選擇框的代碼下面提到不能把字符串轉換爲整數

<% 
String a =request.getParameter("course"); 
if(a!=null) 
    { 
     ResultSet rs=s.selectsub(a); 
     String Query="select * from subject where course_id='"+a+"'"; 
%> 
<select name="subject" id="subject"> 
    <option>Select Subject</option> 
    <% 
    while(rs.next()) 
    { 
    %> 
    <option value="<% out.println(rs.getString("subject_id")); %>"> 
    <% out.println(rs.getString("subject")); %></option> 
    <% } %> 
    </select> 
<% 
} 
%> 

和對象ID使用POST方法,並試圖將此代碼

 String subject=request.getParameter("subject"); 
    int subjectid=Integer.parseInt(subject); 

但line整數轉換工作不傳遞到另一個頁面。顯示錯誤。該錯誤是

org.apache.jasper.JasperException: An exception occurred processing JSP page /saveuser.jsp at line 29 
26:   String email=request.getParameter("email"); 
27:   String designation=request.getParameter("designation"); 
28:   String subject=request.getParameter("subject"); 
29:   int subjectid=Integer.parseInt(subject); 
30:   String institute=request.getParameter("institute"); 
31:   String inemail=request.getParameter("inemail"); 
32:   String uname=request.getParameter("uname"); 
+2

建議..避免使用scriptlet,而是使用JSTL – araknoid

+0

確保request.getParameter(「subject」);或String [] subjects = request.getParameterValues(「subject」); ? – gjman2

+1

PLZ通過MVC架構 – gjman2

回答

4

Integer.parseInt方法將一個有效的整數值字符串轉換成int。否則它會拋出異常。所以確保你傳遞一個有效的整數值給它。有時,字符串中的尾部空格會導致異常。因此,對輸入字符串調用修剪方法以避免這種情況:

int subjectid=Integer.parseInt(subject.trim()); 

還要確保主題不爲空。因此,這似乎更好:

String subject=request.getParameter("subject"); 
int subjectid = 0; 
if(subject !=null && !subject.isEmpty()) 
    subjectid=Integer.parseInt(subject.trim()); 
+0

謝謝Juned阿赫桑......這就是錯誤。修剪功能的作品.. – Salini

+0

@Salini很高興它的工作。如果我的回答對你有幫助,那麼只需點擊答案左側的勾號即可接受。接受答案有助於其他人面臨同樣的問題。 –

+0

雅我試過,但它表明,我可以接受6分鐘後的答案。這就是爲什麼它遲到抱歉。 – Salini

1

它看起來像你混淆你的數據類型,試圖getParameter("subject")轉換爲整數。

也許你有一個名爲"subject_id"的參數,可以工作嗎?

String subject_id_string=request.getParameter("subject_id"); 
int subjectid=Integer.parseInt(subject_id_string); 
1

使用Integer.parseInt(String)方法。

int subjectid = Integer.parseInt(subject.trim()); 

從文檔

將字符串參數作爲有符號的十進制整數。字符串中的字符必須都是十進制數字,不同的是第一個字符可以是ASCII減號「 - 」(「\ u002D」)爲以指示一個負值或ASCII加號「+」(「\ u002B」)表示一個正值。返回結果整數值,就像參數和基數10作爲parseInt(java.lang.String,int)方法的參數一樣。

相關問題