【发布时间】:2017-05-26 14:35:30
【问题描述】:
我请求网址http://localhost:8080/myApp/reg/show?pageNumber=1&pageRange=-1
在 show.jsp 我有
<ts:pagination allData="${tecBacking.tec}"
pageRange="${param.pageRange}"
pageNumber="${param.pageNumber}"
url="show">
<jsp:attribute name="tableHeaders">
<th>Идентификатор</th>
<th>Код</th>
<th>Описание</th>
<th>Тип</th>
<th>Създадено от</th>
</jsp:attribute>
</ts:pagination>
还有我的分页标签
<%@tag description="This is for common pagination" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%-- The list of normal or fragment attributes can be specified here: --%>
<%@attribute name="tableHeaders" fragment="true" required="true"%>
<%@attribute name="allData" required="false" type="java.util.Collection"%>
<%@attribute name="pageNumber" required="false" type="java.lang.Long"%>
<%@attribute name="pageRange" required="false" type="java.lang.Long"%>
<%@attribute name="url" required="false"%>
<c:set target="${paginationModel}" property="objects" value="${(empty allData) ? paginationModel.objects : allData}" />
<c:set target="${paginationModel}" property="pageNumber" value="${(empty pageNumber) ? 1 : pageNumber}" />
<c:set target="${paginationModel}" property="pageRange" value="${(empty pageRange) ? 10 : pageRange}" />
<c:set target="${paginationModel}" property="url" value="${(empty url) ? paginationModel.url : url}"/>
paginationModel 是
@Named
@SessionScoped
public class PaginationModel implements Serializable {
private List<List<String>> objects;
private Long pageNumber;
private Long pageRange;
private String url;
public PaginationModel() {
objects = new ArrayList<>();
pageNumber = 1L;
pageRange = 10L;
url = "";
}
//getters and setters
}
但作为回应,我收到了这个异常
javax.servlet.ServletException:javax.servlet.jsp.JspException:java.lang.NumberFormatException:对于输入字符串:“”
问题在于从 pageRange requestParam 解析 -1。我尝试在 pagination 标签 中进行更改,例如:
<c:set target="${paginationModel}" property="pageRange" value="${10}" />
一切都很好,但是当我尝试时
<c:set target="${paginationModel}" property="pageRange" value="${pageRange}" />
我收到同样的异常。我尝试在 pagination 标签 中调用 ${pageRange} (并将 ${10} 解析为 paginationModel.pageRange ) 和输出是
-1 我不明白我的错误在哪里(paginationModel.pageRange 具有类型 java.lang.Long 并且属性 pageRange 已设置 type="java.lang.Long ") 以及如何修复异常。
【问题讨论】:
标签: java jsp jstl jsp-fragments