0
ArrayList<String> cs = CourseAssignments.getInstance().getStudentCoursesByName(sname); 
                 %>

                  <table border="1" cellspacing="1" cellpadding="8" bgcolor= #EBDDE2> 

                <%
                Iterator<String> i = cs.iterator();
                while(i.hasNext()){
                %>
                <tr>
                  <td><%= i.next() %><input type= "radio" name= "courses" value="<%= i.next() %>"/></td>
                </tr>
                <%}%>
            </table>
              <center><input type= "submit" value= "Submit"></center>
              </form>
                 <%}

In ArrayList cs I have all the courses that a student has.
In a table I show these courses and it works if I don't use RADIO input.
I want to display a radio button near each course, then user selects one and I will display the marks for that course.
I get: "org.apache.jasper.JasperException: An exception occurred processing JSP page /ComplexSearch/Seek.jsp at line 61

58:                 while(i.hasNext()){
59:                 %>
60:                 <tr>
61:                   <td><%= i.next() %><input type= "radio" name= "courses" value="<%= i.next() %>"/></td>
62:                 </tr>
63:                 <%}%>
64:             </table>

java.util.NoSuchElementException
    java.util.ArrayList$Itr.next(Unknown Source)
    org.apache.jsp.ComplexSearch.Seek_jsp._jspService(Seek_jsp.java:136)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

"

2
Contributors
2
Replies
4
Views
5 Years
Discussion Span
Last Post by brood_snow
1

Of course because you use i.next() twice on same line therefore you move to possitions. So if you have followinf courses in arraylist {"math", "english", "java", "c++", "php"}
when you come acrros <%= i.next() %> it will get math but when you hit value="<%= i.next() %>" it will get english and so on. That on its own wouldn' cause problem beside title of row and actual value of radio wouldn't match, your problem i sthat you have array size that is odd number so when it reads php there is no pair value.
You should store i.next() value into temporary string that you can then use instead of double of i.next(). Other option is to use for each loop

ArrayList<String> cs = CourseAssignments.getInstance().getStudentCoursesByName(sname);
for(String course : cs){%>
    <tr>
        <td><%= course %><input type= "radio" name= "courses" value="<%= course %>"/></td>
    </tr>
<%}%>

Edited by peter_budo

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.