<%@ page contentType="text/html;charset=gb2312"%>
<%@ page language="java" import="java.sql.*" import="test.*"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>查询</title>
</head>
<body>
<jsp:useBean id="Bean_id" scope="page" class="test.MyJavabean"/>
<%
String name1=new String(request.getParameter("name1").getBytes("8859_1"));
String select1=new
String(request.getParameter("select1").getBytes("8859_1"));
String value1=new String(request.getParameter("value1").getBytes("8859_1"));
String name2=new String(request.getParameter("name2").getBytes("8859_1"));
String select2=new
String(request.getParameter("select2").getBytes("8859_1"));
String value2=new String(request.getParameter("value2").getBytes("8859_1"));
String logic2=new String(request.getParameter("logic2").getBytes("8859_1"));
String a=name1+select1+"'"+value1+"'";
//if (name2!=""){
String b=" "+logic2+" "+name2+select2+"'"+value2+"'";
//}
//else{
//String b="";
//}
String sql="select * from STU_INFO_TAB where "+a+b;
Bean_id.rsetQ=Bean_id.InQuery(sql);
%>
<tr>
<td width="158"> </td>
<td width="558"><font color="#0000FF" face="隶书" size="5">查询结果</font></t
d>
</tr>
<table width="100%" align="center" class="test" border="1" cellspacing="1"
cellpadding="2">
<tr>
<td><div align="center"><b>学号</b></div></td>
<td><div align="center"><b>姓名</b></div></td>
<td><div align="center"><b>民族</b></div></td>
</tr>
<%
while(Bean_id.rsetQ.next())
{
%>
<tr>
<td><div align="center"><%=Bean_id.rsetQ.getInt("STUDENT_ID")
%></div></td>
<td><div align="center"><%=Bean_id.rsetQ.getString("NAME") %></div></td>
<td><div
align="center"><%=Bean_id.rsetQ.getString("NATIONALITY")%></div></td>
</tr>
<%
}
%>
</table>
<%
Bean_id.closeAll();
%>
</jsp:useBean>
</body>
</html>
--
[m [1;32m※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 60.26.46.31] [m
【 在 dogbare (熊狗) 的大作中提到: 】
: 程序的代码如下,是调用javabean执行一个简单的多条件查询
: 问题处在用//标出的if-else选择语句
: 没有这个语句的话运行是OK的,但是加了就出现如下错误:
: [javac] symbol : variable b
: [javac] location: class org.apache.jsp.select_info_jsp
: [javac] String sql="select * from STU_INFO_TAB where "+a+b;
: 相当于这段if程序根本没有执行,很费解,向大虾求救!!
: <%@ page contentType="text/html;charset=gb2312"%>
: <%@ page language="java" import="java.sql.*" import="test.*"%>
: <html>
: .................(以下省略)
--
还是wordpress好用啊
http:///cloudor.blogthing.com/
[m [1;35m※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 61.49.197.37] [m
现在问题是,除去带//的行,代码运行是没有问题得
但是只要用了if else,就报错了。
比如用
int c=3;
if(c>0){
b=……………………;
}
else
{
b="";
}
就会报同样的错误了,觉得奇怪就是为什么if,else用不了。
谢谢了!!!!!
【 在 cloudor (如何更加有效) 的大作中提到: 】
: 1. 注意你的b的声明范围.
: 2. String对象用equals方法进行比较.
: 3. 根本没有必要new String(...)
: 【 在 dogbare (熊狗) 的大作中提到: 】
: : 程序的代码如下,是调用javabean执行一个简单的多条件查询
: : 问题处在用//标出的if-else选择语句
: : 没有这个语句的话运行是OK的,但是加了就出现如下错误:
: : [javac] symbol : variable b
: : [javac] location: class org.apache.jsp.select_info_jsp
: : [javac] String sql="select * from STU_INFO_TAB where "+a+b;
: .................(以下省略)
--
[m [1;32m※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 221.198.31.50] [m
--
发信人: quanwei (冰~*~情歸齊魯), 信区: Qilu
标 题: Re: 2005.10.1 全家福
发信站: 饮水思源 (2005年10月01日21:15:57 星期六), 站内信件
hug~
[1;33m【 在 heartinsnow (离开,人离了心不开;等待,等成迫不及待) 的大作中提到: 】 [0;37m [m
[m [1;34m※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 61.152.202.34] [m
您可能理解的是楼主只在条件语句的一个分支里定义了b,但当执行另一个分支的时候这个b就不在生命期里了,我同意. 但其实定义b的那个分枝根本没执行,也就是b根本就没定义.
另外关于变量在{}中定义,那么出了{}生命周期就结束了,在C++的语法中确实这样,
我一直也以为JSP是这样的,但是后来发现不知道为什么JSP的不是???而好像是在整个页面,
我也是最近才发现,没读过JAVA语法,具体也不太清楚什么情况.也许我看错了,找时间试验一下。
但是像楼主这样写:
if (name2!=""){
String b=" "+logic2+" "+name2+select2+"'"+value2+"'";
}
else
{
String b="";
}
编译器肯定是检查有问题的,虽然理论上这个b不会被重定义,但编译器不会考虑这么复杂,它不允许定义两次.
我想最好还是在if的上面定义变量b.
[m [1;32m※ 来源:·饮水思源 bbs.sjtu.edu.cn·[FROM: 60.26.42.137] [m