我写的一个下拉列表,传递到本页面时我要获取下拉类表的值时,想把它转化成int型时总是出现异常,就是12行

<html><body><formaction=""name="form2"method="post">书名<inputtype="text"name="t11"><se... <html><body>
<form action="" name="form2" method="post">
书名<input type="text" name="t11">
<select name="sel">
<option value="1">完全匹配</option>
<option value="2">不完全匹配</option>
</select>
<input type="submit" value="查询">
</form>
<% String m1=request.getParameter("t11");
String m0=request.getParameter("sel");
int m2=Integer.parseInt(m0);
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
}catch(ClassNotFoundException e){
out.print(e);}
try{
Connection conn=DriverManager.getConnection("jdbc:odbc:shu");
String sql;
if(m2==1)
{sql="Select * From Book where 书名='"+m1+"'";}
else
{sql="Select * From Book where 书名 like '%"+m1+"%'";}
我写的一个下拉列表,传递到本页面时我要获取下拉类表的值时,想把它转化成int型时总是出现异常,就是12行那。可我下面要用M2的值啊,要是不转为int型,后面if(m2==1)那就出现错误,请各位大虾帮忙看看啊
展开
 我来答
百度网友5f1a54f
2011-01-07 · TA获得超过476个赞
知道小有建树答主
回答量:739
采纳率:0%
帮助的人:602万
展开全部
用if(m2!=null&&m2.equals("1"))来判断 可能传过来来的参数为null呢 转为int自然要出错 或者你用try把转换过程保护起来。。。
oscar_wang
2011-01-07
知道答主
回答量:9
采纳率:0%
帮助的人:1.5万
展开全部
你为什么非要用整形判断呢?直接用字符串判断不行吗?if(m2.equals("1"))。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hanya777
2011-01-07 · TA获得超过178个赞
知道小有建树答主
回答量:184
采纳率:0%
帮助的人:175万
展开全部
"1".equals(m2); 就可以了,不是非要用m2==1来判断,所以前面转换成int型的语句可以去掉。
这里注意最好把"1"写在前面,这样就可以避免出现空指针异常了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
uglbm54
2011-01-10 · TA获得超过4583个赞
知道小有建树答主
回答量:1723
采纳率:83%
帮助的人:1089万
展开全部
你想做联动菜单是吗?给你个参考,主要就是makeshi这个函数,onchange里传递所选中的值,然后根据该值来判断显示数组里的值,关键就在这行
for(j=0;j<diqul[x].length;j++){//这个循环是填充下拉列表
shi.options[j]=new Option(diqul[x][j].text,diqul[x][j].value)
全部代码参考以下

<head>
<meta http-equiv="Content-Type" ontent="text/html; charset=gb2312" />
<title>表单元素[select下拉列表]制作二级联动菜单</title>
<script language="javascript">
//下面函数是演示二,联动菜单的处理代码
function makeshi(x){
var form2=document.diqu.one.options.length;//这句解释同上
var diqul=new Array(form2)//新建一个数组,项数为第一个下拉列表的项数
for(i=0;i<form2;i++)//循环第一个下拉列表的项数那么多次
diqul[i]=new Array();//子循环
//下面是给每个循环赋值
var shi=document.diqu.shi;//方便引用
diqul[0][0]=new Option("绵阳","绵阳");
diqul[0][1]=new Option("成都","成都");
diqul[0][2]=new Option("广元","广元");
diqul[1][0]=new Option("盐城","盐城");
diqul[1][1]=new Option("苏州","苏州");
diqul[1][2]=new Option("常州","常州");
diqul[2][0]=new Option("南宁","南宁");
diqul[2][1]=new Option("柳州","柳州");
diqul[2][2]=new Option("北海","北海");
diqul[3][0]=new Option("杭州","杭州");
diqul[3][1]=new Option("温州","温州");
diqul[3][2]=new Option("义乌","义乌");
for(m=shi.options.length-1;m>0;m--)

shi.options[m]=null;//将该项设置为空,也就等于清除了
for(j=0;j<diqul[x].length;j++){//这个循环是填充下拉列表
shi.options[j]=new Option(diqul[x][j].text,diqul[x][j].value)
//注意上面这据,列表的当前项等于 新项(数组对象的x,j项的文本为文本,)
}
shi.options[0].selected=true;//设置被选中的初始值
}
</script>
</head>
<body>

<p><strong>演示二:地区二级无刷新联动菜单</strong></p>
<form id="form2" name="diqu" method="post" action="">
<select name="one" size="1" onchange="makeshi(options.selectedIndex)">
<option value="0">四川</option>
<option value="1">江苏</option>
<option value="2">广西</option>
<option value="3">浙江</option>
</select>
<select name="shi">
<option value="绵阳">绵阳</option>
<option value="成都">成都</option>
<option value="德阳">德阳</option>
<option value="广元">广元</option>
<option value="南充">南充</option>
</select>
</form>
</body>
</html>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式