其实错误很简单:你不能在函数之外使用testArr [0] = "a";之类的语句给数组赋值。实际上你违反的是基本的java语法规范,也就是说,在方法之外的属性,可以给它初始化赋初值,但是不能使用赋值语句(“=”等号语句)。无论是eclipse还是jbuilder,都是会报错的,这跟ide无关,也跟struts无关。解决办法是:要么你把对数组的语句放到一个函数(方法)里面,要么你把值放到数组的初始化语句里。例如以下语句就不报错: public void aaa(){
String[] testArr = new String[2];
testArr[1] = "ad";
testArr[2] = "ab";
}
String[] testArr = new String[2];
testArr[1] = "ad";
testArr[2] = "ab";
}
?????
怎么可能正常呢?这个错误是最基本的语法错误。
出现这个问题后的我立即将testArr[0]放入函数里.ide不会出错,但运行的时候错误是一样的
完整代码如下:
===============下面是bean================================
ublic String[] GetCof(String[] tempArr, int Num) { String[] theArr = new String[Num]; //实例化数据库连接池
DBConnectionManager connMgr = DBConnectionManager.getInstance(); //取连接池
Connection conn = connMgr.getConnection("mssql");
ResultSet rs = null;
Statement stmt1 = null;
String sql = "select * from [config]";
try {
stmt1 = conn.createStatement();
rs = stmt1.executeQuery(sql);
if (!rs.next()) {
System.out.println("数据库配置信息不存在");
} else {
for (int i = 0; i < Num; i++) {
theArr[i] = rs.getString(tempArr[i]).trim();
}
}
rs.close();
stmt1.close();
} catch (SQLException e) {
System.out.println("获取配置信息失败:" + e);
}
//将mssql的连接还给连接池
connMgr.freeConnection("mssql", conn);
return theArr;
}============================test.jsp=====================================
String[] cofArr ={ "aa","bb");
......
cofArr = testBean.GetCof(cofArr,2);
for(int i = 0 ;i<2;i++){
out.println(cofArr[i]+"<br>");
}在jsp中没有问题,在struts中用上面的代码.出现的错误和testArr[0]是一样的
......
cofArr = testBean.GetCof(cofArr,2);
for(int i = 0 ;i<2;i++){
out.println(cofArr[i]+"<br>");
}
双引号改成单引号试试
testArr [0] = 'a';