jsp下使用for循环报错,怎么解决

nicemorning 2017-05-28 05:39:24
tomcat的信息:

org.apache.jasper.JasperException: An exception occurred processing JSP page [/index.jsp] at line [108]

105: <select class="form-control">
106: <option value="">-- 选择酒店 --</option>
107: <%
108: for (int i = 0; i < hotelList.length; i++) {
109: out.print("<option value=\"" + hotelList[i][0] + "\">" + hotelList[i][0] + "</option>");
110: }
111: %>


这一部分的源码:
BaseReader br = new BaseReader();
String[][] hotelList = br.getHotelNameList();
for (int i = 0; i < hotelList.length; i++) {
out.print("<option value=\"" + hotelList[i][0] + "\">" + hotelList[i][0] + "</option>");
}



这一部分是没问题的。测试类下使用正常。测试类:
BaseReader br = new BaseReader();
String[][] hotelList = br.getHotelNameList();
for (int i = 0; i < hotelList.length; i++) {
System.out.println(hotelList[i][0]);
}
...全文
1089 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
nicemorning 2017-05-29
  • 打赏
  • 举报
回复
引用 5 楼 qq_33606395 的回复:
首先,你贴错误的时候没有贴出异常,再者你说hotelList是从后台传过来的,可是你没说是怎么传的.
然后就没有了。只有一个页面。也只有这一个类。
nicemorning 2017-05-29
  • 打赏
  • 举报
回复
引用 5 楼 qq_33606395 的回复:
首先,你贴错误的时候没有贴出异常,再者你说hotelList是从后台传过来的,可是你没说是怎么传的.
hotelList通过br.getHotelNameList()函数的返回值进行了初始化。 getHotelNameList返回的是个二维数组
qq_33606395 2017-05-29
  • 打赏
  • 举报
回复
首先,你贴错误的时候没有贴出异常,再者你说hotelList是从后台传过来的,可是你没说是怎么传的.
nicemorning 2017-05-29
  • 打赏
  • 举报
回复
引用 3 楼 zc881124 的回复:
[quote=引用 2 楼 oypebook 的回复:] [quote=引用 1 楼 zc881124 的回复:] hotelList.是后台传来的还是在jsp界面定义的。 如果是在jsp页面定义的,应该是没问题 如果是后台传来的,遍历的话,可以使用标签 如果不用标签的话,可以用getAttribute取出来再遍历
hotelList是通过getHotelNameList()从数据库取出来的。 getHotelNameList()的代码如下:
public String[][] getHotelNameList() {
        String[][] hotelList = null;
        try {
            resultSet = statement.executeQuery("SELECT COUNT(id) FROM ticket_pro.hotel_base");
            resultSet.next();
            hotelList = new String[resultSet.getInt(1)][3];
            resultSet = null;
            resultSet = statement.executeQuery("SELECT name,telnumber,price FROM ticket_pro.hotel_base");
            int i = 0;
            while (resultSet.next()) {
                hotelList[i][0] = resultSet.getString(1);
                hotelList[i][1] = resultSet.getString(2);
                hotelList[i][2] = resultSet.getString(3);
                i++;
            }
        } catch (SQLException e) {
            new LogOut().logOut("./log/baseLog.log", e.getMessage() + "\r\n");
        } finally {
            return hotelList;
        }
    }
这种情况需要用标签吗? 如果需要的话又该怎么写。 毕竟刚学不太会= =[/quote] 你把index.jsp代码全部贴出来[/quote] index.jsp大部分都是界面。真正使用<%%>的就只有我之前发的那几行了
110成成 2017-05-28
  • 打赏
  • 举报
回复
引用 2 楼 oypebook 的回复:
[quote=引用 1 楼 zc881124 的回复:] hotelList.是后台传来的还是在jsp界面定义的。 如果是在jsp页面定义的,应该是没问题 如果是后台传来的,遍历的话,可以使用标签 如果不用标签的话,可以用getAttribute取出来再遍历
hotelList是通过getHotelNameList()从数据库取出来的。 getHotelNameList()的代码如下:
public String[][] getHotelNameList() {
        String[][] hotelList = null;
        try {
            resultSet = statement.executeQuery("SELECT COUNT(id) FROM ticket_pro.hotel_base");
            resultSet.next();
            hotelList = new String[resultSet.getInt(1)][3];
            resultSet = null;
            resultSet = statement.executeQuery("SELECT name,telnumber,price FROM ticket_pro.hotel_base");
            int i = 0;
            while (resultSet.next()) {
                hotelList[i][0] = resultSet.getString(1);
                hotelList[i][1] = resultSet.getString(2);
                hotelList[i][2] = resultSet.getString(3);
                i++;
            }
        } catch (SQLException e) {
            new LogOut().logOut("./log/baseLog.log", e.getMessage() + "\r\n");
        } finally {
            return hotelList;
        }
    }
这种情况需要用标签吗? 如果需要的话又该怎么写。 毕竟刚学不太会= =[/quote] 你把index.jsp代码全部贴出来
nicemorning 2017-05-28
  • 打赏
  • 举报
回复
引用 1 楼 zc881124 的回复:
hotelList.是后台传来的还是在jsp界面定义的。 如果是在jsp页面定义的,应该是没问题 如果是后台传来的,遍历的话,可以使用标签 如果不用标签的话,可以用getAttribute取出来再遍历
hotelList是通过getHotelNameList()从数据库取出来的。 getHotelNameList()的代码如下:
public String[][] getHotelNameList() {
        String[][] hotelList = null;
        try {
            resultSet = statement.executeQuery("SELECT COUNT(id) FROM ticket_pro.hotel_base");
            resultSet.next();
            hotelList = new String[resultSet.getInt(1)][3];
            resultSet = null;
            resultSet = statement.executeQuery("SELECT name,telnumber,price FROM ticket_pro.hotel_base");
            int i = 0;
            while (resultSet.next()) {
                hotelList[i][0] = resultSet.getString(1);
                hotelList[i][1] = resultSet.getString(2);
                hotelList[i][2] = resultSet.getString(3);
                i++;
            }
        } catch (SQLException e) {
            new LogOut().logOut("./log/baseLog.log", e.getMessage() + "\r\n");
        } finally {
            return hotelList;
        }
    }
这种情况需要用标签吗? 如果需要的话又该怎么写。 毕竟刚学不太会= =
110成成 2017-05-28
  • 打赏
  • 举报
回复
hotelList.是后台传来的还是在jsp界面定义的。 如果是在jsp页面定义的,应该是没问题 如果是后台传来的,遍历的话,可以使用标签 如果不用标签的话,可以用getAttribute取出来再遍历

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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