2016-09-06 6 views
0

Я пытаюсь получить доступ к каждому элементу из массива объектов, который хранится в списке, но всякий раз, когда я пытаюсь получить к нему доступ по индексу/свойствам класса Model, его броски ниже исключенияНевозможно получить доступ к каждому элементу из массива объектов в списке в JSP

[2016/09/06 10:12:19:351 GMT+02:00] 00000049 ServletWrappe E com.ibm.ws.webcontainer.servlet.ServletWrapper service SRVE0068E: An exception was thrown by one of the service methods of the servlet [/WEB-INF/views/instruction.jsp] in application [SpringMVCHibernate_war]. Exception created : [javax.el.PropertyNotFoundException: Property '0' not found on type java.lang.Integer 
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:232) 
at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:209) 
at javax.el.BeanELResolver.property(BeanELResolver.java:319) 
at javax.el.BeanELResolver.getValue(BeanELResolver.java:89) 
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:55) 
at org.apache.el.parser.AstValue.getValue(AstValue.java:174) 
at org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:283) 
at org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:778) 
at com.ibm._jsp._instruction._jspx_meth_c_forEach_1(_instruction.java:133) 
at com.ibm._jsp._instruction._jspx_meth_c_forEach_0(_instruction.java:184) 
at com.ibm._jsp._instruction._jspx_meth_c_if_0(_instruction.java:227) 
at com.ibm._jsp._instruction._jspService(_instruction.java:97) 

ниже мой JSP сниппет:

 <c:forEach items="${listPersons}" var="listObj"> 
      <c:forEach items="${listObj}" var="instruction"> 
       <tr> 
        <td>${instruction[0]}</td> 
        <td>${instruction[1]}</td> 
        <td>${instruction[2]}</td> 
        <td>${instruction[3]}</td> 
       </tr> 
      </c:forEach> 
     </c:forEach> 

пытался ниже слишком, но получил такой же javax.el.PropertyNotFoundException:

 <c:forEach items="${listPersons}" var="listObj"> 
      <c:forEach items="${listObj}" var="instruction"> 
       <tr> 
        <td>${instruction.iKey}</td> 
        <td>${instruction.sProc}</td> 
        <td>${instruction.bCurrency}</td> 
        <td>${instruction.wModified}</td> 
       </tr> 
      </c:forEach> 
     </c:forEach> 

где

model.addAttribute("instruction", new Instruction()); 
    model.addAttribute("listPersons", this.personService.listPersons()); 

и список:

List<Object[]> personsList = session.createSQLQuery("SELECT * FROM MyDB.INSTRUCTION").list(); 

ниже приведен пример вывода списка:

[25258188, SP, IND, 2016-03-16 08:07:11.0] 
[25258191, NR, USD, 2016-03-16 08:07:11.0] 

ответ

1

попробовать это

<c:forEach items="${listPersons}" var="listObj"> 
      <tr> 
       <td>${listObj[0]}</td> 
       <td>${listObj[1]}</td> 
       <td>${listObj[2]}</td> 
       <td>${listObj[3]}</td> 
      </tr> 
    </c:forEach> 
+0

Спасибо, это сработало :) Я подумал, что может потребоваться внутренний цикл, чтобы каждый элемент из Object [] и внешнего цикла переходил в список итераций, не так ли? – nilFi

1

Вы получаете это исключение, потому что ваша инструкция переменной в вашем JSP является не тип массива или список его простую строку или любой другой тип, попробуйте понять и ваш поток и проверить список погодного лицо содержит список в списке или нет

+0

Спасибо @Jekin, не уверен, где я ошибся, как я пытался получить доступ к свойствам класса Instruction, используя переменные инструкции, выполнив : model.addAttribute ("listPersons", this.personService.listPersons()); – nilFi