一个简单问题,答对了马上给分.

luyuly 2003-10-16 04:36:39
我现在想要实现一个有下拉菜单的可选择查询内容的东东.
代码如下:
<%@ page language="java" contentType="text/html;charset=GB2312"%>
<%@ page import="com.zhang.SqlBean,java.sql.*,com.zhang.*"%>
<% Convert xxx = new Convert();
SqlBean xx = new SqlBean();

String dwdm = request.getParameter("select"); //上个页面传过来

String text=request.getParameter("text");
if(text.equals("")||text==null)
{
out.println();
return;
}
String selectStr="";
ResultSet rs=null;
%>
<%Switch(dwdm){

case '1':
text=Integer.parseInt("text");
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB001=text";
rs = xx.executeQuery(selectStr);
break;
case '2':
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB005 like '%text%'";
rs=xx.executeQuery(selectStr);
break;
case '3':
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB002=text";
rs=xx.executeQuery(selectStr);
break;
case '4':
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB002=text";
rs=xx.executeQuery(selectStr);
break;
case '5':
text=Integer.parseInt("text");
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB001=text";
rs = xx.executeQuery(selectStr);
break;
case '6':
text=Integer.parseInt("text");
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB001=text";
rs = xx.executeQuery(selectStr);
break;

}%>

<p align="left"> 单位代码
                
单位名称
<br>
<%while(rs.next()){
%>
   <%=rs.getString("AAB001")%>
                   
<a href="/nssb2/fenlei.jsp?dwbh=<%=rs.getString("AAB001")%>"><%=xxx.db2page(rs.getString("AAB005"))
%></a>
<br>
<% }
%>
</p>
报错如下:
An error occurred between lines: 17 and 47 in the jsp file: /nssb2/e.jsp

Generated servlet error:
D:\Tomcat4.0\work\Standalone\localhost\_\nssb2\e$jsp.java:85: ';' expected.
Switch(dwdm){;
^


An error occurred between lines: 17 and 47 in the jsp file: /nssb2/e.jsp

Generated servlet error:
D:\Tomcat4.0\work\Standalone\localhost\_\nssb2\e$jsp.java:87: 'case' outside switch statement.
case '1':
^


An error occurred between lines: 17 and 47 in the jsp file: /nssb2/e.jsp

Generated servlet error:
D:\Tomcat4.0\work\Standalone\localhost\_\nssb2\e$jsp.java:92: 'case' outside switch statement.
case '2':
^


An error occurred between lines: 17 and 47 in the jsp file: /nssb2/e.jsp

Generated servlet error:
D:\Tomcat4.0\work\Standalone\localhost\_\nssb2\e$jsp.java:96: 'case' outside switch statement.
case '3':
^


An error occurred between lines: 17 and 47 in the jsp file: /nssb2/e.jsp

Generated servlet error:
D:\Tomcat4.0\work\Standalone\localhost\_\nssb2\e$jsp.java:100: 'case' outside switch statement.
case '4':
^


An error occurred between lines: 17 and 47 in the jsp file: /nssb2/e.jsp

Generated servlet error:
D:\Tomcat4.0\work\Standalone\localhost\_\nssb2\e$jsp.java:104: 'case' outside switch statement.
case '5':
^


An error occurred between lines: 17 and 47 in the jsp file: /nssb2/e.jsp

Generated servlet error:
D:\Tomcat4.0\work\Standalone\localhost\_\nssb2\e$jsp.java:109: 'case' outside switch statement.
case '6':
^
7 errors, 1 warning
请问诸位高手,我应该如何修改?
...全文
28 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
yaoqiangmax 2003-10-18
  • 打赏
  • 举报
回复
谢谢 太阳 小弟刚出道,请多多关照。
wind666 2003-10-18
  • 打赏
  • 举报
回复
回daliwan
老兄 你那样好像只起代码代码的作用
并不能消除错误码,
不过也好 可以看出老兄对做程序有一定的、、


对于本问题的第一错误,我也遇到过, 搞不懂时隐时现, 很头痛的
grgh2000 2003-10-18
  • 打赏
  • 举报
回复
楼主明白这'case' outside switch statement.是什么意吗?什么原因造成的?

那是因为编译器把Switch(dwma)当成一个方法了,所以才出现case语句不在switch语句中的错误。

楼主应该关注错误提示信息,楼上的大家一样。
grgh2000 2003-10-18
  • 打赏
  • 举报
回复
第一:Switch应改switch
第二:switch(xxx)中的xxx应该是整型或字符型(不是字符串型!)

to yaoqiangmax(yaoqiangmax): switch语句的结束是不需要分号的
zhanghuazhanghome 2003-10-18
  • 打赏
  • 举报
回复
关注
yaray 2003-10-18
  • 打赏
  • 举报
回复
解决方式一:(如果传过来的是数字类型的参数)

String dwdm = request.getParameter("select"); //上个页面传过来
if(dwdm==null){
out.println("参数未获得!");
return;
}
int which = -1;
try{
which = Integer.parseInt(dwdm);
}catch(Exception ex){
out.println("获得的参数不是数字类型.");
out.println(ex.getMessage());
}
if(which==-1){
out.println("参数无效.");
return ;
}
Switch(which){
case 1;
...
}
yaoqiangmax 2003-10-16
  • 打赏
  • 举报
回复
错误信息的意思是缺少一个分号,好像在swith的最后一个花括号后边有一个分号.
daliwan 2003-10-16
  • 打赏
  • 举报
回复
试这个,字符串的比较要用equals

<%
ResultSet rs=null;

if(dwdm.equals("1"))
{
text=Integer.parseInt("text");
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB001=text";
break;
}
else if(dwdm.equals("2"))
{
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB005 like '%text%'";
break;
}
else if(dwdm.equals("3"))
{
....
....
}
else if(dwdm.equals("4"))
{
....
....
}

rs = xx.executeQuery(selectStr);
%>
xiejiangjun 2003-10-16
  • 打赏
  • 举报
回复
switch (aaa)
aaa 只能是int,char
boolean 不行的
daliwan 2003-10-16
  • 打赏
  • 举报
回复
试试

<%
ResultSet rs=null;

Switch(dwdm){
case '1':
text=Integer.parseInt("text");
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB001=text";
break;
case '2':
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB005 like '%text%'";
break;
case '3':
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB002=text";
break;
case '4':
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB002=text";
break;
case '5':
text=Integer.parseInt("text");
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB001=text";
break;
case '6':
text=Integer.parseInt("text");
selectStr = "SELECT AAB001,AAB005 FROM AA001 WHERE AAB001=text";
break;
}

rs = xx.executeQuery(selectStr);
%>
比特灵 2003-10-16
  • 打赏
  • 举报
回复
switch????????????
switch char boolean int

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧