首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Ajax >

关于java.lang.NumberFormatException: For input string: "NaN"

2012-08-29 
求助:关于java.lang.NumberFormatException: For input string: NaN我最近在学习Ajax,自己写了一个分页

求助:关于java.lang.NumberFormatException: For input string: "NaN"
我最近在学习Ajax,自己写了一个分页查找的例子,不过在Run的时候有个Bug,纠结了一天了,请坛子里的朋友帮我看看。

这个是 PageUtil 

Java code
package Util;import dao.ArchiveDAO;public class PageUtil {    private int pageSize;//页面大小(每页显示的条目数)    private int pageId;//当前页码Id    private int pageTotal;//记录总数    private int pageNum;//记录总页数        /**     * 构造方法,用于计算总页数     */    public PageUtil() {        super();        this.pageTotal = new ArchiveDAO().getTotals();    }    public int getPageSize() {        return pageSize;    }    public void setPageSize(int pageSize) {        this.pageSize = pageSize;    }    public int getPageId() {        return pageId;    }    public void setPageId(int pageId) {        this.pageId = pageId;    }    public int getPageTotal() {        return pageTotal;    }    /**     * 计算总页数     * @param pagesize     * @return     */    public int getPageNum(int pageSize) {        if (pageTotal < pageSize) {            pageNum = 1;        } else if (pageTotal % pageSize == 0) {            pageNum = pageTotal / pageSize;        } else {            pageNum = pageTotal / pageSize + 1;        }        return pageNum;    }}



这个是 DAO
Java code
package dao;import java.sql.*;import java.util.ArrayList;import java.util.List;import entity.Archive;import Util.DBUtil;import Util.PageUtil;public class ArchiveDAO {    private static final String FIND_TOTAL = "select * from d_archive";    private static final String FIND_ALL = "select * from d_archive limit ?,?";        /**     * 获取记录总数     * @return     */    public int getTotals() {        int pageTotal = 0;        try {            Connection conn = DBUtil.getConnection();            PreparedStatement prep = conn.prepareStatement(FIND_TOTAL);            ResultSet res = prep.executeQuery();            while (res.next()) {                pageTotal++;            }        } catch (Exception e) {            e.printStackTrace();        }        return pageTotal;    }        /**     * 查询当前页的条目     * @param page 当前页码     * @return     */    public List<Archive> getPage(PageUtil page) {        int pageId = page.getPageId();//当前页码        int pageSize = page.getPageSize();//页面大小        //int pageNum = page.getPageNum(pageSize);//页码总数        //int pageTotal = page.getPageTotal();//总条目数                List<Archive> list = new ArrayList<Archive>();        try {            Connection conn = DBUtil.getConnection();            PreparedStatement prep = conn.prepareStatement(FIND_ALL);            int begin = (pageId - 1) * pageSize;            prep.setInt(1, begin);//开始索引位置            prep.setInt(2, pageSize);//索引条目数            ResultSet res = prep.executeQuery();                        while (res.next()) {                Archive archive = new Archive();                archive.setId(res.getInt("id"));                archive.setDocMgrName(res.getString("document_manager_name"));                archive.setDepartmentName(res.getString("department_name"));                archive.setCatchNum(res.getInt("catch_number"));                archive.setArchiveNum(res.getInt("archive_number"));                archive.setLastOpeTime(res.getString("last_operate_time"));                list.add(archive);            }        } catch (Exception e) {            e.printStackTrace();        }        return list;    }}


这个是 Servlet 
Java code
package action;import java.io.IOException;import java.io.PrintWriter;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import dao.ArchiveDAO;import entity.Archive;import Util.PageUtil;@SuppressWarnings("serial")public class ArchiveServlet extends HttpServlet {    /**     * doGet 请求方法     */    public void doGet(HttpServletRequest request, HttpServletResponse response)     throws ServletException, IOException {        //设置请求页面编码        response.setContentType("text/html;charset=utf-8");        request.setCharacterEncoding("utf-8");        //获得Action请求        String action = request.getParameter("action");        if (action == null) {            return;        } else if ("select".equalsIgnoreCase(action)) {            select(request, response);        }    }        public void doPost(HttpServletRequest request, HttpServletResponse response)     throws ServletException, IOException {        doGet(request, response);    }       /**     * 获取当前页面的请求     */    public void select(HttpServletRequest request, HttpServletResponse response)    throws ServletException, IOException {        //获取当前页码        String pageIdNow = request.getParameter("pageId");        int pageId = Integer.parseInt(pageIdNow);        System.out.println(pageId);                //获取当前页面大小        String pageSizeNow = request.getParameter("pageSize");        int pageSize = Integer.parseInt(pageSizeNow);                PageUtil page = new PageUtil();        page.setPageId(pageId);        page.setPageSize(pageSize);                toView(page, request, response);        }         /**     * 获得数据,构造静态 HTML     */        public void toView(PageUtil page, HttpServletRequest request, HttpServletResponse response)     throws ServletException,IOException {        ArchiveDAO arcDAO = new ArchiveDAO();        List<Archive> list = arcDAO.getPage(page);        PrintWriter out = response.getWriter();                if (list == null) {            System.out.println("没有查询到数据...");            return;        } else {            out.println("<table>");            out.println("<tr>");            out.println("<td>档案员名称</td>");            out.println("<td>部门名称</td>");            out.println("<td>捕获数量</td>");            out.println("<td>归档数量</td>");            out.println("<td>最后操作时间<td>");            out.println("</tr>");            for (int i=0; i<list.size(); i++) {                Archive archive = new Archive();                archive = (Archive)list.get(i);                System.out.println(archive.getDocMgrName());                out.println("<tr>");                out.println("<td>" + archive.getDocMgrName() + "</td>");                out.println("<td>" + archive.getDepartmentName() + "</td>");                out.println("<td>" + archive.getCatchNum() + "</td>");                out.println("<td>" + archive.getArchiveNum() + "</td>");                out.println("<td>" + archive.getLastOpeTime() + "</td>");                out.println("</tr>");                        }            out.println("</table>");        }                out.println("<div>");        out.println("共<input type='text' value='" + arcDAO.getTotals() + "' size='1' readonly='true' >条记录");        out.println("共<input type='text' value='" + page.getPageNum(page.getPageSize()) + "' size='1' readonly='true' >页");        out.println("当前显示<input type='text' value='" + page.getPageSize() + "' size='1' id='pageSize' onchange=changePage()>条");                if (page.getPageSize() < page.getPageTotal()) {            out.println("第<input type='text' value='" + page.getPageId() + "' size='1' id='pageId' readonly='true'>页");            if (page.getPageId() == 1) {                out.println("<input type='button' value='上一页' disabled='true'>");                if (page.getPageId() != page.getPageNum(page.getPageSize())) {                    out.println("<input type='button' value='下一页' onclick='nextPage(" + page.getPageId() +")'>");                    System.out.println(page.getPageId());                } else {                    out.println("<input type='button' value='下一页' disable='true'>");                }            } else {                out.println("<input type='button' value='上一页' onclick='pevPage(" + page.getPageId() + ")'>");                if (page.getPageId() != page.getPageNum(page.getPageSize())) {                    out.println("<input type='button' value='下一页' onclick='nextPage(" + page.getPageId() +")'>");                } else {                    out.println("<input type='button' value='下一页' disable='true'>");                }             }        } else {            out.println("第<input type='text' value='1' size='1' id='pageId' readonly='true'>页");            out.println("<input type='button' value='上一页' disabled='true'>");            out.println("<input type='button' value='下一页' disabled='true'>");        }        out.println("</div>");    }} 



这是数据表的实例化类
Java code
package entity;public class Archive {    private int id;    private String docMgrName;//管理员姓名    private String departmentName;//所属部门    private int catchNum;//缓存数    private int archiveNum;//归档文件数    private String lastOpeTime;//最后操作时间        public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }    public String getDocMgrName() {        return docMgrName;    }    public void setDocMgrName(String docMgrName) {        this.docMgrName = docMgrName;    }    public String getDepartmentName() {        return departmentName;    }    public void setDepartmentName(String departmentName) {        this.departmentName = departmentName;    }    public int getCatchNum() {        return catchNum;    }    public void setCatchNum(int catchNum) {        this.catchNum = catchNum;    }    public int getArchiveNum() {        return archiveNum;    }    public void setArchiveNum(int archiveNum) {        this.archiveNum = archiveNum;    }    public String getLastOpeTime() {        return lastOpeTime;    }    public void setLastOpeTime(String lastOpeTime) {        this.lastOpeTime = lastOpeTime;    }        public String toString() {        return "Archive [archiveNum=" + archiveNum + ", catchNum=" + catchNum                + ", departmentName=" + departmentName + ", docMgrName="                + docMgrName + ", id=" + id + ", lastOpeTime=" + lastOpeTime                + "]";    }}




[解决办法]
问题可能出在int pageId = Integer.parseInt(pageIdNow);或者int pageSize = Integer.parseInt(pageSizeNow);这两个地方,你前台调用send方法时传入的两个参数中有应该有值为NaN的,导致传入后台的时候转化为int报错

热点排行