2013-08-27 39 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)方法的参数一样。

相关问题