PDA

View Full Version : مشکل ساده در اجرای صفحه jsp



pro_mvb
سه شنبه 28 آذر 1391, 17:47 عصر
این پیج Jsp رو که اجرا میکنم


<form name="showAll">
<%
Data data=new Data();
Crud crud=new Crud();
List list =crud.select();
for(int i=0;i<=list.size();i++){
Object[] o= (Object[])list.get(i);
out.print("name is:"+o[0]);%>
<br><%
out.print("price is:"+o[1]);
%>
<br>
<% out.print("desc is:"+o[2]); } %>


</form>






این ارور رو میده:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception
org.apache.jasper.JasperException: An exception occurred processing JSP page /select.jsp at line 21

18: Crud crud=new Crud();
19: List list =crud.select();
20: for(int i=0;i<=list.size();i++){
21: Object[] o= (Object[])list.get(i);
22: out.print("name is:"+o[0]);%>
23: <br><%
24: out.print("price is:"+o[1]);


Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handle JspException(JspServletWrapper.java:567)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:471)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
org.netbeans.modules.web.monitor.server.MonitorFil ter.doFilter(MonitorFilter.java:393)


root cause
java.lang.ArrayIndexOutOfBoundsException: Array index out of range: 3
java.util.Vector.get(Vector.java:744)
org.apache.jsp.select_jsp._jspService(select_jsp.j ava:86)
org.apache.jasper.runtime.HttpJspBase.service(Http JspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
org.apache.jasper.servlet.JspServletWrapper.servic e(JspServletWrapper.java:433)
org.apache.jasper.servlet.JspServlet.serviceJspFil e(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspSe rvlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet .java:722)
org.netbeans.modules.web.monitor.server.MonitorFil ter.doFilter(MonitorFilter.java:393)


note The full stack trace of the root cause is available in the Apache Tomcat/7.0.22 logs.
Apache Tomcat/7.0.22


دردش چیه؟

اینم بقیه کلاس ها اگرنیازه:

package ir.acm.org.entity;

import javax.persistence.*;

@Entity
@Table(name="product")


public class Data {

@Id @Column(name="ID")
private int id;

@Column(name="name")
private String name;

@Column(name="description")
private String description;

@Column (name="price")
private int price;

public void setID(int id){
this.id=id;
}

public int getID(){
return id;
}

public void setName(String name){
this.name=name;
}

public String getName(){
return name;
}

public void setDescription(String desc){
this.description=desc;
}
public String getDescription(){
return description;

}
public void setPrice(int price){
this.price=price;
}

public int getPrice(){
return price;
}


}



و




package ir.acm.org.controller;
import javax.persistence.*;
import ir.acm.org.entity.Data;
import java.util.List;

public class Crud {

private EntityManager em;
private Data data;
public Crud(){

EntityManagerFactory emf= Persistence.createEntityManagerFactory("myJPA");
this.em=emf.createEntityManager();

}
public List select(){
List list=null;
Query q=em.createQuery("select data.name , data.price , data.description , data.id from Data data");
list=q.getResultList();
return list;
}


}

pro_mvb
سه شنبه 28 آذر 1391, 22:29 عصر
دردمندم کمک:D

pro_mvb
چهارشنبه 29 آذر 1391, 09:54 صبح
جالب اینه که در سرولت همین کد کار میده اما در Jsp جواب نمیده! خوب مگه Jsp توسط jasperengine به سرولت تبدیل نمیشه؟؟ پس چرا خطا میگیره؟

pro_mvb
چهارشنبه 29 آذر 1391, 21:50 عصر
خیلیم عالیییییییی :D

javaphantom
شنبه 02 دی 1391, 20:21 عصر
خیلیم عالیییییییی :D


for(int i=0;i<=list.size();i++){

مشکلت تو این حلقست کوچیکتر مساوی رو مساویشو بردار

pro_mvb
یک شنبه 03 دی 1391, 12:43 عصر
چرا با اجرای این کد در Jsp یه <td> اضافه چاپ میشه ولی هیمن کد در سرولت به درستی اجرا میشه؟
چیکار کنم که مشکلش حل بشه؟

try{
for(int i=0;i<=3;i++){
counter=0; %><tr> <td><%
for(j=k;counter<=3;j++){
Object[] o = (Object[])list.get(j);
if(o.length != 0){
out.print("name: "+o[0]+"<br>");
out.print("price: "+o[1]+"<br>");
out.print("description: "+o[2]+"<br>");
++counter;
k++;
%></td>
<td>
<% }
}}}catch(Exception e){ }
%>

</table>




من برای حلش اومدم اینجوری کردم ضایع نیست؟ :

<%if (counter <=3){out.print("<td>");}

<%if (counter <=3){out.print("<td>");}