0

我正在尝试从我的 dao 类中获取列表到我的 jsp 页面中。

我的列表从我的 DAO 类返回正常,但是在将返回列表迭代到我的 jsp 页面时,我无法获取表列的值

请帮我解决这个问题。

控制台错误:

org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.ClassCastException: java.lang.Integer cannot be cast to         
com.ebhasin.bstalentscareers.beans.Bsmostviewjp
    at org.apache.jsp.jsps.BSHomePage_jsp._jspService(BSHomePage_jsp.java:594)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    ------------
    ----------

DaoCLass.java

public List getpopularJobProvider()
  {
  List list = null;
  try
   {
     session=HibernateUtil.getSessionFactory().openSession();
     transaction=session.beginTransaction();
     ProjectionList pl=Projections.projectionList();
     pl.add(Projections.distinct(Projections.property("jobProviderId")));
     list=session.createCriteria(Bsmostviewjp.class).addOrder(Order.desc("counter")).setProjection(pl).setMaxResults(4).list();
     System.out.println("List  of the most popular job provider in dao-"+list.size());//this is fine
     transaction.commit();
   }
    catch (Exception e)
    {
         if(transaction!=null && transaction.isActive())
                {
                    try
                    {
                         transaction.rollback();
                    }
                    catch (Exception e1)
                    {
                         System.out.println("Exception in getpopularJobProvider Rollback  :" + e1);
                    }
                }
        System.out.println("Exception in getpopularJobProvider :"+e);
    }
    return list; 
}

jspPage.jsp

 <tr> 
     <%
     List mostpopjplist=jposting.getpopularJobProvider();
       Iterator mostit=mostpopjplist.iterator();
         while(mostit.hasNext())
         { 
          Bsmostviewjp bsmostviewjp=(Bsmostviewjp) mostit.next();//Problem here  
         Integer jpId=bsmostviewjp.getJobProviderId(); 
     %>
  <td>
    <%=jpId%> 
   </td>
       <%}%>
</tr>

Bsmostviewjp.java (Bean/pojo CLass)

import java.util.Date; 
public class Bsmostviewjp  implements java.io.Serializable {


     private Integer mvjpId;
     private int jobSeekerId;
     private int jobId;
     private int jobProviderId;
     private int counter;
     private Date appliedOn;

    public Bsmostviewjp() {
    }

    public Bsmostviewjp(int jobSeekerId, int jobId, int jobProviderId, int counter, Date appliedOn) {
       this.jobSeekerId = jobSeekerId;
       this.jobId = jobId;
       this.jobProviderId = jobProviderId;
       this.counter = counter;
       this.appliedOn = appliedOn;
    }

    public Integer getMvjpId() {
        return this.mvjpId;
    }

    public void setMvjpId(Integer mvjpId) {
        this.mvjpId = mvjpId;
    }
    public int getJobSeekerId() {
        return this.jobSeekerId;
    }

    public void setJobSeekerId(int jobSeekerId) {
        this.jobSeekerId = jobSeekerId;
    }
    public int getJobId() {
        return this.jobId;
    }

    public void setJobId(int jobId) {
        this.jobId = jobId;
    }
    public int getJobProviderId() {
        return this.jobProviderId;
    }

    public void setJobProviderId(int jobProviderId) {
        this.jobProviderId = jobProviderId;
    }
    public int getCounter() {
        return this.counter;
    }

    public void setCounter(int counter) {
        this.counter = counter;
    }
    public Date getAppliedOn() {
        return this.appliedOn;
    }

    public void setAppliedOn(Date appliedOn) {
        this.appliedOn = appliedOn;
    } 
}
4

3 回答 3

0

代替

列表列表=空;

利用

列表 < Bsmostviewjp > 列表 = null;

于 2013-01-10T16:17:47.843 回答
0

Integer bsmostviewjp=(Integer) mostit.next();是 Stefan Be 建议的我的解决方案

于 2013-01-15T06:52:15.823 回答
0

首先,你不应该在没有参数化的情况下使用 List 和 Iterator。我的意思是您必须指出您列出的元素类型。因此,您应该编写List<Integer>Iterator<Integer>List<Bsmostviewjp>而不是ListIterator。这将允许编译器在出现问题时更容易地告诉您。看到这个很好的解释为什么。这为您提供了类型安全性,这非常有用。

完成此操作后,我想您会很快发现错误。

其次,您不应该在 jsp 中使用 scriptlet,而应使用 taglibs。看到这个

于 2013-01-10T14:32:42.913 回答