我是初学者。我知道这是基本的。在我的项目中,我使用的是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>
<%
}
%>
并使用post方法将主题ID传递到另一个页面并尝试使用此代码
String subject=request.getParameter("subject");
int subjectid=Integer.parseInt(subject);
但整数转换行无效。错误显示。错误是
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");
答案 0 :(得分:4)
Integer.parseInt
方法将有效的整数值字符串转换为int。否则会抛出异常。因此,请确保将有效的整数值传递给它。有时字符串中的尾随空格会导致异常。因此,在输入字符串上调用trim方法以避免:
int subjectid=Integer.parseInt(subject.trim());
还要确保主题不为空。所以这似乎更好:
String subject=request.getParameter("subject");
int subjectid = 0;
if(subject !=null && !subject.isEmpty())
subjectid=Integer.parseInt(subject.trim());
答案 1 :(得分:1)
您似乎在混淆数据类型,尝试将getParameter("subject")
转换为整数。
也许你有一个名为"subject_id"
的参数,这可以吗?
String subject_id_string=request.getParameter("subject_id");
int subjectid=Integer.parseInt(subject_id_string);
答案 2 :(得分:1)
int subjectid = Integer.parseInt(subject.trim());
来自文档
将字符串参数解析为带符号的十进制整数。字符串中的字符必须都是十进制数字,除了第一个字符可以是ASCII减号' - '('\ u002D')表示负值或ASCII加号'+'('\ u002B')表示正值。返回结果整数值,就像参数和基数10作为parseInt(java.lang.String,int)方法的参数一样。