You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by red phoenix <ro...@gmail.com> on 2008/08/19 17:36:35 UTC

how to use pager tag in struts2?

I want to use Pager Tag Library2.0 in struts2,I set maxPageItems under
struts2.0 action,like follows:

request.setAttribute("maxPageItems","10");
return SUCCESS;

then I use maxPageItems in JSP page,like follows:
<pg:pager
    items="50"
    index="center"
    maxPageItems="${request.maxPageItems}"
    maxIndexPages="10"
    isOffset="<%= true %>"
    export="offset,currentPageNumber=pageNumber"
    scope="request">
    ......
</pg:pager>

When I run above code,it raise error:
22: <%@ include file="/pages/common/common.jsp" %>
23: <%@ taglib uri="http://jsptags.com/tags/navigation/pager" prefix="pg" %>
24:
25:    <pg:pager
26:     items="50"
27:     index="center"
28:     maxPageItems="${request.maxPageItems}"
Stacktrace:
 org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
 org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
 org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
 org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
 javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
 org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)

root cause
java.lang.ArithmeticException: / by zero
com.jsptags.navigation.pager.PagerTag.pageNumber(PagerTag.java:334)

I have set the value maxPageItems,why it can't be used with
${request.maxPageItems} in pager tag?
How to use pager tag in struts2? Anybody could give me a example?

Thanks in advance!
Best Regards,
phoenix

Re: how to use pager tag in struts2?

Posted by Dave Newton <ne...@yahoo.com>.
--- On Tue, 8/19/08, Dustin Pearce wrote:
> One way to fix this is to have a setter/getter for
> maxPageItems on your action.  That will put the submitted 
> maxPageItems on the ValueStack.  Then in your jsp, just 
> before your pg:pager tag use:
> <s:set name="maxPageItems" value="maxPageItems" scope="request"/>
> to make it accessible using JSTL EL.
> 
> and then just use ${maxPageItems} in your tag library.

You don't need to use <s:set...> to make stack context variables available to JSP EL; the S2 request wrapper already does that.

Dave


---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: how to use pager tag in struts2?

Posted by Dustin Pearce <du...@yahoo.com>.
Most likely it is a problem on how you are handling the request in  
your action.  Are you using the HttpServletRequestAware interface?   
Dave is right though, it is generally bad form to make your Actions  
ServletRequest dependent.

One way to fix this is to have a setter/getter for maxPageItems on  
your action.  That will put the submitted maxPageItems on the  
ValueStack.  Then in your jsp, just before your pg:pager tag use:
<s:set name="maxPageItems" value="maxPageItems" scope="request"/>
to make it accessible using JSTL EL.

and then just use ${maxPageItems} in your tag library.

On Aug 19, 2008, at 8:36 AM, red phoenix wrote:

> I want to use Pager Tag Library2.0 in struts2,I set maxPageItems under
> struts2.0 action,like follows:
>
> request.setAttribute("maxPageItems","10");
> return SUCCESS;
>
> then I use maxPageItems in JSP page,like follows:
> <pg:pager
>    items="50"
>    index="center"
>    maxPageItems="${request.maxPageItems}"
>    maxIndexPages="10"
>    isOffset="<%= true %>"
>    export="offset,currentPageNumber=pageNumber"
>    scope="request">
>    ......
> </pg:pager>
>
> When I run above code,it raise error:
> 22: <%@ include file="/pages/common/common.jsp" %>
> 23: <%@ taglib uri="http://jsptags.com/tags/navigation/pager"  
> prefix="pg" %>
> 24:
> 25:    <pg:pager
> 26:     items="50"
> 27:     index="center"
> 28:     maxPageItems="${request.maxPageItems}"
> Stacktrace:
> org 
> .apache 
> .jasper 
> .servlet.JspServletWrapper.handleJspException(JspServletWrapper.java: 
> 524)
> org 
> .apache 
> .jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java: 
> 320)
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> org 
> .apache 
> .struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java: 
> 413)
>
> root cause
> java.lang.ArithmeticException: / by zero
> com.jsptags.navigation.pager.PagerTag.pageNumber(PagerTag.java:334)
>
> I have set the value maxPageItems,why it can't be used with
> ${request.maxPageItems} in pager tag?
> How to use pager tag in struts2? Anybody could give me a example?
>
> Thanks in advance!
> Best Regards,
> phoenix



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


[OT] Re: how to use pager tag in struts2?

Posted by Dave Newton <ne...@yahoo.com>.
Isn't it "requestScope" for accessing request attributes?

Not that this is Struts-related; if you're having problems with a third-party tag library you should seek support through whatever mechanism they provide, otherwise a generic JEE forum.

IMO it'd be cleaner to expose an action property and access it via JSP EL rather than tying your action to the servlet spec.

Dave

--- On Tue, 8/19/08, red phoenix <ro...@gmail.com> wrote:
> I want to use Pager Tag Library2.0 in struts2,I set
> maxPageItems under
> struts2.0 action,like follows:
> 
> request.setAttribute("maxPageItems","10");
> return SUCCESS;
> 
> then I use maxPageItems in JSP page,like follows:
> <pg:pager
>     items="50"
>     index="center"
>     maxPageItems="${request.maxPageItems}"
>     maxIndexPages="10"
>     isOffset="<%= true %>"
>     export="offset,currentPageNumber=pageNumber"
>     scope="request">
>     ......
> </pg:pager>
> 
> When I run above code,it raise error:
> 22: <%@ include
> file="/pages/common/common.jsp" %>
> 23: <%@ taglib
> uri="http://jsptags.com/tags/navigation/pager"
> prefix="pg" %>
> 24:
> 25:    <pg:pager
> 26:     items="50"
> 27:     index="center"
> 28:     maxPageItems="${request.maxPageItems}"
> Stacktrace:
> 
> org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:524)
> 
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:435)
> 
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
> 
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
> 
> javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> 
> org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:413)
> 
> root cause
> java.lang.ArithmeticException: / by zero
> com.jsptags.navigation.pager.PagerTag.pageNumber(PagerTag.java:334)
> 
> I have set the value maxPageItems,why it can't be used
> with
> ${request.maxPageItems} in pager tag?
> How to use pager tag in struts2? Anybody could give me a
> example?
> 
> Thanks in advance!
> Best Regards,
> phoenix

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org