MChan
MChan

Reputation: 7202

Pagination with Spring Hibernate

I am trying to implement Spring Pagination in my (Spring MVC / Hibernate / MySQL) project under Eclipse STS so I've followed the example in [A Pagination Technique Using Spring][1] since I found it recommended here in Stackoverflow in many answers to similar questions. Now I have a question and a problem:

  1. Question: How can I import the pagination tag file into my project? Specially that I don't see any Tag folder under my project WEB-INF folder?

  2. Problem: I am facing some trouble as each time I try to build / run the project I get error:

    java.lang.ClassNotFoundException: org.springframework.web.context.support.StandardServletEnvironment at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1714) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1559) at org.springframework.web.servlet.HttpServletBean.(HttpServletBean.java:90) at org.springframework.web.servlet.FrameworkServlet.(FrameworkServlet.java:211) at org.springframework.web.servlet.DispatcherServlet.(DispatcherServlet.java:303) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:357) at java.lang.Class.newInstance(Class.java:310) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:138) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144) at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1088) at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5123) at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5407) at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633) at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114) at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1672) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) at java.util.concurrent.FutureTask.run(FutureTask.java:138) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662)

I have double checked my code and I don't see what might be wrong. So can anyone please tell me what I might be doing wrong?

Controller:

public String listVolDisc(HttpServletRequest request, HttpServletResponse response, Model model) throws Exception {

    List searchResults = ivoldiscservice.getAllVolDisc();

    PagedListHolder pagedListHolder = new PagedListHolder(searchResults);

    int page = ServletRequestUtils.getIntParameter(request, "p", 0);

    pagedListHolder.setPage(page);

    int pageSize = 10;      
    pagedListHolder.setPageSize(pageSize);
    model.addAttribute("pagedListHolder", pagedListHolder);
    return "VolDiscount";
}

JSP:

<c:url value="/paging.do" var="pagedLink">
    <c:param name="action" value="list"/>
    <c:param name="p" value="~"/>
</c:url>

        <div class="section">

            <h2 class="section_title">Volume Discounts</h2>

<tg:paging pagedListHolder="${pagedListHolder}" pagedLink="${pagedLink}"/>

            <div class="table">
                <div class="table_header">                      
                    <div class="cell">ID</div>
                    <div class="cell">From</div>                        
                    <div class="cell">To</div>
                    <div class="cell">Discount</div>
                </div>


<%-- <c:forEach var="voldiscount" items="${voldiscountList}"> --%>
<c:forEach var="voldiscount" items="${pagedListHolder}">
                    <div class="table_row">                     
                        <div class="cell important">${voldiscount.id}</div>
                        <div class="cell">${voldiscount.rangeStarts}</div>                      
                        <div class="cell">${voldiscount.rangeEnds}</div>
                        <div class="cell">${voldiscount.discount}</div>
                    </div>
</c:forEach>
                </div><!-- .table -->

<tg:paging pagedListHolder="${pagedListHolder}" pagedLink="${pagedLink}"/>              

            </div><!-- .section -->

DAO:

public List<VolumeDiscount> getAllVolDisc() {
    return sessionfactory.getCurrentSession().createQuery("from VolumeDiscount v").list();
    }

Thanks for your time

Upvotes: 1

Views: 1285

Answers (1)

Alex
Alex

Reputation: 11579

It seems you have missing dependency: spring-web.

Upvotes: 1

Related Questions