request.setAttribute()是怎么写的?

解决方案 »

  1.   

    改成这样
    Collection c=(Collection)request.getAttribute("book");
      

  2.   

    楼主已经说过了,改为=(Collection)request.getAttribute("book"); 也不行
      

  3.   

    原代码是这样的:<%@ page language="java"  pageEncoding="gb2312"%>
    <%@ taglib prefix="c" uri="/WEB-INF/c.tld"%>
    <%@ page import="java.util.*" %>
    <%@ page import= "shiyin.bookShop.bean.*"%>
    <%@ page import= "shiyin.bookShop.shopcart.*"%>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
      <link href="css/mycss.css" rel="stylesheet" type="text/css"/>
        
        <title>浏览图书</title>
      </head>
      <body leftmargin=0 topmargin="0"  bottommargin="0" marginwidth="0" marginheight="0">
      <div class="top"></div>
      <div class="main1"></div>
      <div class="main2"><center>
      <p>&nbsp;</p>
      <p> 
       <a href="<%=request.getContextPath() %>/querybook.jsp">继续查询</a>
      <a href="<%=request.getContextPath() %>/showcart.jsp">查看购物车</a>
      </p>
      <table border="1">
    <%
       if(!request.getAttribute("type").equals("BY_ISBN"))
       {
       Collection<Book> books =(Collection<Book>)request.getAttribute("book");
       Iterator<Book> ibooks=books.iterator();
       while(ibooks.hasNext()){
       Book book=ibooks.next();
      
    %>
    <tr>
    <td><%=book.getIsbn() %></td>
    <td><%=book.getTitle() %></td>
    <td><%=book.getAuthor() %></td>
    <td><%=book.getPrice() %></td>
    <td><a href="shoppingCart?operation=addItem&isbn=<%=book.getIsbn() %>">加入购物车</a></td>
    </tr>
    <%
    }
     %>
      </table>
     <%
     }else{
     BookDetails book=new BookDetails();
     book=(BookDetails)request.getAttribute("book");
     if(book==null){%>
     <span class="bodytxt">对不起,本书店没有你要求的书</span><%=request.getAttribute("key") %> 
     <%
     return;
      }
      else{
     %>
      <p class="bodyh1">你的查询结果是:             </p>
      <table border=1>
             <tr>
               <td class="bodytxt">ISBN</td>
               <td class="bodytxt">书名</td>
               <td class="bodytxt">作者</td>
               <td class="bodytxt">价格</td>
             </tr>
             <tr>
             <c:set var="bookItem" value="${requestScope.book}"/>
              <td><c:out value="${bookItem.isbn}" /></td>
              <td><c:out value="${bookItem.title}" /></td>
              <td><c:out value="${bookItem.author}" /></td>
              <td><c:out value="${bookItem.price}" /></td>
              <td><a href="shoppingcart?operation=addItem&isdn=<c:out value="${bookitem.isbn}" />">加入购物车</a></td>
             </tr>
       </table>
       <%
       }
       }
        %>
      </center>
      <div class="txt">2005-2008</div>
      </div>
      
      <div class="main3"></div>
      
      </body>
    </html>
      

  4.   

    报错是这个:org.apache.jasper.JasperException: Exception in JSP: /browse.jsp:2421:   </p>
    22:   <table border="1">
    23: <%
    24:    if(!request.getAttribute("type").equals("BY_ISBN"))
    25:    {
    26:    Collection<Book> books =(Collection<Book>)request.getAttribute("book");
    27:    Iterator<Book> ibooks=books.iterator();
    java.lang.NullPointerException
    org.apache.jsp.browse_jsp._jspService(browse_jsp.java:90)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    shiyin.bookShop.servlet.loginServlet.doBrowse(loginServlet.java:67)
    shiyin.bookShop.servlet.loginServlet.doLogin(loginServlet.java:54)
    shiyin.bookShop.servlet.loginServlet.doPost(loginServlet.java:31)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    shiyin.bookShop.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:18)
      

  5.   

    LZ,
     if(!request.getAttribute("type").equals("BY_ISBN"))
    type是什么?你改成request.getParameter("type");这样看看
      

  6.   

    if(!request.getAttribute("type").equals("BY_ISBN"))
    改成if(!"BY_ISBN".equals(request.getAttribute("type"))如果不行,改成if(!"BY_ISBN".equals(request.getParameter("type"))
      

  7.   

    我的那个“tpye”servlet那里传过来的 servlet中有这样的代码
       request.setAttribute("book", booklist);
    request.setAttribute("key", varkey);
    request.setAttribute("type",vartype);
      

  8.   

    我把代码if(!request.getAttribute("type").equals("BY_ISBN"))改成
    if(!"BY_ISBN".equals(request.getParameter("type"))
    可以运行了,但是那个Collection<Book> books =(Collection<Book>)request.getAttribute("book");
    警告还是还有,jsp的request.getAttribute("book");就是不能强制转换为泛型。还什么办法可以弄呢?
      

  9.   

    那个警告你就别指望能去掉了。这个问题讨论过很多次。OVER.http://topic.csdn.net/u/20080123/03/1e041618-c3f7-493b-b257-d0447860ac0f.html
      

  10.   

    你可以这样试试看if(!request.getParameter("type").equals("BY_ISBN")){
              Collection books =(Collection)request.getAttribute("book");
              Iterator ibooks=books.iterator();
              while(ibooks.hasNext()){
                  Book book=(Book)ibooks.next();
              }
    }