if(request.getAttribute("top")==null){
request.setAttribute("top","1");
}
String topS=(String)request.getAttribute("top");
top=Integer.parseInt(topS);报如下错:
java.lang.ClassCastException: com.opensymphony.xwork2.DefaultTextProvider
cannot be cast to java.lang.Stringjava.lang.ClassCastException: com.opensymphony.xwork2.DefaultTextProvider
cannot be cast to java.lang.String
at _jsp._entplist__jsp._jspService(entpList.jsp:22)
at com.caucho.jsp.JavaPage.service(JavaPage.java:61)
at com.caucho.jsp.Page.pageservice(Page.java:578)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:195)
at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:416)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:87)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:265)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:273)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:682)
at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:743)
at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:662)
at java.lang.Thread.run(Thread.java:619)

解决方案 »

  1.   

    你确定top里存的都是数字吗?这个错报的是转不成Integer类型
      

  2.   

    top从没在其他地方设过值,只设过为1,当其为空的时候设的,没在其他地方设过
      

  3.   


    楼主好好查查吧~·这个错误显示就是这样~·报转换错误~·
    String topS=request.getAttribute("top").toString();//改成这样
      

  4.   

    奇怪的是,这里request.getAttribute取出来的数据类型是com.opensymphony.xwork2.DefaultTextProvider ,不知道这是什么类型,不知道这种类型怎么转换成int类型
      

  5.   

    String topS=request.getAttribute("top").toString();//改成这样
      

  6.   

    用toString的方法把topS输出来是:com.opensymphony.xwork2.DefaultTextProvider@e222eb,这好像跟那个类型有关(com.opensymphony.xwork2.DefaultTextProvider),不知道为什么是这样的类型,跟struts2有什么关系吗?
      

  7.   


    看输出的结果 topS里存的是个实体类~·根本不是"1"
      

  8.   

    楼主不是说
    top从没在其他地方设过值,只设过为1,当其为空的时候设的,没在其他地方设过好好查查吧~·
      

  9.   

    我也觉得奇怪,我只有这一个JSP页面,没在其他地方设过值
      

  10.   

    当前的JSP页面不是从哪里跳转过来的?查查。在action里面有没有setTop()
      

  11.   

    有可能,改掉top为topNumber,问题解决了,不过问个新的问题:
    我这个页面路径是:localhost/mhi/list.jsp;我现在用一个超级链接url="localhost/mhi/list.jsp?topNumber='20'",页面的request是不是应该能接收到topNumber=20呢?
      

  12.   

    写个参数的方法传值,跳转,取值不行吗?
    写在Attribute里有点累啊
      

  13.   

    用超级链接url="localhost/mhi/list.jsp?topNumber='20'到另外一个页面,
    用request.getgetparameter("topNumber") 是可以实现的,建议用servlet控制吧!
      

  14.   

    if(request.getAttribute("top")==null){
       system.out.pritln("run if");
        request.setAttribute("top","1");
    }
    system.out.pritln("*****1*******");
    String topS=(String)request.getAttribute("top");
    system.out.pritln("topS=" + topS);
    top=Integer.parseInt(topS);你那样调试一下,看是运行到哪里出问题了,topS的取值到底是什么?