地址栏上面可以看到begin在增加,http://localhost:9999/testJSTL4/page.do?begin=24
 为什么表格不刷新呢?
<body>
<% List weekWeather = new ArrayList(); %>
<%
test.WeekWeather m_ww = new test.WeekWeather();
%>
<% weekWeather=m_ww.list; %>
<% request.setAttribute("weekWeather",weekWeather);
   int m_begin = Integer.parseInt(request.getParameter("begin"));
   request.setAttribute("begin2",m_begin);
%>
<c:set var="listSize" value="${fn:length(weekWeather)}"></c:set>
<c:set var="pageSize" value="4"></c:set>
<c:set var="begin2" value="${param.begin2}"></c:set>
<c:set var="pageEnd" value="${pageBegin+pageSize-1}"></c:set><c:if test="${(listSize gt pageSize) and (pageEnd lt listSize)}">
   <a href='<c:url value="/page.do">
               <c:param name="begin" value="${begin+pageSize}"/>
          </c:url>'>
          next
   </a>
</c:if><table border="2">
  <TR>
   <TH>星期</TH>
   <TH>百分比</TH>
  </TR>
 
  <c:forEach var="weather" items="${weekWeather}"
             begin="${begin2}" end="${pageEnd}">
    <tr>
     <TD><c:out value="${weather.item}"/></TD>
     <TD><c:out value="${weather.percent}"/></TD>
    </tr>          
  </c:forEach>
</table>

解决方案 »

  1.   

    没看到你里面写了刷新的代码啊,你让他自动刷新也起码要写个onLoad事件吧
      

  2.   

    不是啊。servlet里面这么写的
    package servlet;
    import java.io.IOException;import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;public class pageServlet extends HttpServlet { @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
    throws ServletException, IOException {
    // TODO Auto-generated method stub
    int begin = Integer.parseInt(req.getParameter("begin"));
    req.setAttribute("begin", begin++);
    RequestDispatcher rdcher=req.getRequestDispatcher("/show.jsp");
    rdcher.forward(req,resp);

    } /**
     * Constructor of the object.
     */
    public pageServlet() {
    super();
    }}
      

  3.   

    我最开始发的是show.jsp里面的代码
      

  4.   

    begin的值明明传过来了可是就是不刷新
      

  5.   

    这一句的意思是取begin2这个请求参数赋值到begin2变量中,把前面的begin2(非null)值洗掉了(洗成null了,因为没有begin2这个请求参数)因为代码不充分,只能提醒LZ自己看看这里了。
      

  6.   

    jsp页全部的代码:
    <%=m_begin%>的时候,打印出来的begin的值还是增加的!<%@ page language="java" import="java.util.*,test.WeekWeather" pageEncoding="gbk"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql_rt" %>
    <%@taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions"prefix="fn"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>  <body>
    <% List weekWeather = new ArrayList(); %>
    <%
    test.WeekWeather m_ww = new test.WeekWeather();
    %>
    <% weekWeather=m_ww.list; %>
    <% request.setAttribute("weekWeather",weekWeather);
       int m_begin = Integer.parseInt(request.getParameter("begin"));
       request.setAttribute("begin2",m_begin);
    %>
    <%=m_begin%>
    <c:set var="listSize" value="${fn:length(weekWeather)}"></c:set>
    <c:set var="pageSize" value="4"></c:set>
    <c:set var="begin2" value="${param.begin2}"></c:set>
    <c:set var="pageEnd" value="${begin2+3}"></c:set><c:if test="${(listSize gt pageSize) and (pageEnd lt listSize)}">
       <a href='<c:url value="/page.do">
                   <c:param name="begin" value="${begin+pageSize}"/>
              </c:url>'>
              next
       </a>
    </c:if><table border="2">
      <TR>
       <TH>星期</TH>
       <TH>百分比</TH>
      </TR>
     
      <c:forEach var="weather" items="${weekWeather}"
                 begin="${begin2}" end="${begin2+3}">
        <tr>
         <TD><c:out value="${weather.item}"/></TD>
         <TD><c:out value="${weather.percent}"/></TD>
        </tr>          
      </c:forEach>
    </table>
      </body>
    </html>
      

  7.   

    <%@ page language="java" import="java.util.*,test.WeekWeather" pageEncoding="gbk"%>
    <%@ taglib prefix="c" uri="http://java.sun.com/jstl/core_rt" %>
    <%@ taglib prefix="sql" uri="http://java.sun.com/jstl/sql_rt" %>
    <%@taglib uri="http://java.sun.com/jstl/fmt_rt" prefix="fmt"%>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/functions"prefix="fn"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
     
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>  <body>
    <% List weekWeather = new ArrayList(); %>
    <%
    test.WeekWeather m_ww = new test.WeekWeather();
    %>
    <% weekWeather=m_ww.list; %>
    <% request.setAttribute("weekWeather",weekWeather);
       int m_begin = Integer.parseInt(request.getParameter("begin"));
       request.setAttribute("m_begin",m_begin);
    %>
    <%=m_begin%>
    <c:set var="listSize" value="${fn:length(weekWeather)}"></c:set>
    <c:set var="pageSize" value="4"></c:set>
    <c:set var="begin2" value="${param.m_begin}"></c:set>
    <c:set var="pageEnd" value="${begin2+3}"></c:set> 
    <table border="2">
      <TR>
       <TH>星期</TH>
       <TH>百分比</TH>
      </TR>
     
      <c:forEach var="weather" items="${weekWeather}"
                 begin="${begin2}" end="${begin2+3}">
        <tr>
         <TD><c:out value="${weather.item}"/></TD>
         <TD><c:out value="${weather.percent}"/></TD>
        </tr>          
      </c:forEach>
    </table>
      </body>
    </html>
    我把jsp的代码精简了一下,去掉了next,可是还是不刷新
      

  8.   

    begin2的值是null,为什么呢?应该已经存进去了啊
      

  9.   

    OK,如果想取前面的m_begin变量值,这样写<c:set var="begin2" value="${m_begin}"></c:set>