자바 페이지 표시 효과 구현
효과 도 는 다음 과 같다.
실현 절차:
1.실체 User.class 를 만 듭 니 다.참고 코드 는 다음 과 같 습 니 다.
public class User {
private String name;
private int age;
private String gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public User(String name, int age, String gender) {
super();
this.name = name;
this.age = age;
this.gender = gender;
}
public User() {
}
}
2.페이지 모델 PageBean.class 를 만 듭 니 다.참고 코드 는 다음 과 같 습 니 다.
public class PageBean<T> {
private int pageNum;
private int pageSize;
private int totalRecord;
private int totalPage;
private List<T> list;
private int start;
private int end;
private int fromIndex;
private int toIndex;
public PageBean(int pageNum, int pageSize, int totalRecord) {
this.pageNum = pageNum;
this.pageSize = pageSize;
this.totalRecord = totalRecord;
fromIndex=(pageNum-1)*pageSize;
toIndex=pageNum*pageSize>totalRecord?totalRecord:pageNum*pageSize;
if (totalRecord % pageSize == 0) {
this.totalPage = totalRecord / pageSize;
} else {
this.totalPage = totalRecord / pageSize + 1;
}
start = 1;
end = 5;
if (totalPage <= 5) {
end = this.totalPage;
} else {
start = pageNum - 2;
end = pageNum + 2;
if (start < 1) {
start = 1;
end = 5;
}
if (end > this.totalPage) {
end = totalPage;
start = end - 5;
}
}
}
public int getPageNum() {
return pageNum;
}
public void setPageNum(int pageNum) {
this.pageNum = pageNum;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotalRecord() {
return totalRecord;
}
public int getFromIndex() {
return fromIndex;
}
public void setFromIndex(int fromIndex) {
this.fromIndex = fromIndex;
}
public int getToIndex() {
return toIndex;
}
public void setToIndex(int toIndex) {
this.toIndex = toIndex;
}
public void setTotalRecord(int totalRecord) {
this.totalRecord = totalRecord;
}
public int getTotalPage() {
return totalPage;
}
public void setTotalPage(int totalPage) {
this.totalPage = totalPage;
}
public List<T> getList() {
return list;
}
public void setList(List<T> list) {
this.list = list.subList(fromIndex, toIndex);
}
public int getStart() {
return start;
}
public void setStart(int start) {
this.start = start;
}
public int getEnd() {
return end;
}
public void setEnd(int end) {
this.end = end;
}
}
3.jsp 페이지 를 만 듭 니 다.참고 코드 는 다음 과 같 습 니 다.
/**
*index.jsp
*/
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="${pageContext.request.contextPath }/main" rel="external nofollow" > </a>
</body>
</html>
/**
*main.jsp
*/
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript"
src="${pageContext.request.contextPath}/jquery/jquery.min.js"></script>
<script type="text/javascript">
function gos() {
var pageNum = $.trim($("#pageNum").val());
if(isNaN(pageNum)){
alert(" , !");
return ;
}
if(pageNum==""){
alert(" , !");
return ;
}
if(pageNum<1||pageNum>${requestScope.pageBean.totalPage}){
alert(" , !");
return ;
}
location.href="${pageContext.request.contextPath}/main?pageNum=" rel="external nofollow" +pageNum;
}
</script>
<title> </title>
</head>
<body>
<center>
<table width="40%" style="text-align:center">
<tr>
<th> </th>
<th> </th>
<th> </th>
</tr>
<c:forEach items="${requestScope.pageBean.list }" var="i">
<tr>
<td>${i.name }</td>
<td>${i.gender }</td>
<td>${i.age }</td>
</tr>
</c:forEach>
</table>
</center>
<br />
<center>
<a href="${pageContext.request.contextPath}/main?pageNum=1" rel="external nofollow" > </a>
<c:if test="${requestScope.pageBean.pageNum ==1}">
<c:forEach begin="${requestScope.pageBean.start}"
end="${requestScope.pageBean.end}" var="i">
<c:if test="${requestScope.pageBean.pageNum == i}">
${i}
</c:if>
<c:if test="${requestScope.pageBean.pageNum != i}">
<a href="${pageContext.request.contextPath}/main?pageNum=${i}" rel="external nofollow" rel="external nofollow" rel="external nofollow" >${i}</a>
</c:if>
</c:forEach>
<a
href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum+1}" rel="external nofollow" rel="external nofollow" > </a>
</c:if>
<c:if
test="${requestScope.pageBean.pageNum > 1 && requestScope.pageBean.pageNum < requestScope.pageBean.totalPage}">
<a
href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum-1}" rel="external nofollow" rel="external nofollow" > </a>
<c:forEach begin="${requestScope.pageBean.start}"
end="${requestScope.pageBean.end}" var="i">
<c:if test="${requestScope.pageBean.pageNum == i}">
${i}
</c:if>
<c:if test="${requestScope.pageBean.pageNum != i}">
<a href="${pageContext.request.contextPath}/main?pageNum=${i}" rel="external nofollow" rel="external nofollow" rel="external nofollow" >${i}</a>
</c:if>
</c:forEach>
<a
href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum+1}" rel="external nofollow" rel="external nofollow" > </a>
</c:if>
<c:if
test="${requestScope.pageBean.pageNum == requestScope.pageBean.totalPage}">
<a
href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.pageNum-1}" rel="external nofollow" rel="external nofollow" > </a>
<c:forEach begin="${requestScope.pageBean.start}"
end="${requestScope.pageBean.end}" var="i">
<c:if test="${requestScope.pageBean.pageNum == i}">
${i}
</c:if>
<c:if test="${requestScope.pageBean.pageNum != i}">
<a href="${pageContext.request.contextPath}/main?pageNum=${i}" rel="external nofollow" rel="external nofollow" rel="external nofollow" >${i}</a>
</c:if>
</c:forEach>
</c:if>
<a
href="${pageContext.request.contextPath}/main?pageNum=${requestScope.pageBean.totalPage}" rel="external nofollow" > </a><br><br>
<input type="text" id="pageNum" size="1px"></input>
<a href="javascript:gos()" rel="external nofollow" > </a>, [${requestScope.pageBean.totalPage }] ,[${requestScope.pageBean.totalRecord}]
</center>
</body>
</html>
4.Servlets.class 를 만 듭 니 다.참고 코드 는 다음 과 같 습 니 다.
@WebServlet("/main")
public class Servlets extends HttpServlet {
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
String page = request.getParameter("pageNum");
int pageNum = Integer.parseInt((page == null ? "1" : page));
int pageSize = 5;
Service s = new Service();
PageBean<User> pb = s.findAll(pageNum, pageSize);
request.setAttribute("pageBean", pb);
request.getRequestDispatcher("/main.jsp").forward(request, response);
}
}
5.Service.class 를 만 듭 니 다.참고 코드 는 다음 과 같 습 니 다.
public class Service {
public PageBean<User> findAll(int pageNum, int pageSize) {
UserDao userDao = new UserDao();
List<User> users = userDao.findAll();
int totalRecord = users.size();
PageBean<User> pb = new PageBean<>(pageNum, pageSize, totalRecord);
pb.setList(users);
return pb;
}
}
6.UserDao.class 를 만 듭 니 다.참고 코드 는 다음 과 같 습 니 다.
public class UserDao {
List<User> users=new ArrayList<>();
User user;
public List<User> findAll(){
for(int i=1;i<99;i++){
user=new User("name-"+i, (int)(100*Math.random()), (int)(10*Math.random())%2==1?" ":" ");
users.add(user);
}
return users;
}
}
주의해 야 할 문제:1.웹 콘 텐 츠 에 폴 더 jquery 를 만 들 고 jquery.min.js 파일 을 넣 어야 합 니 다.그렇지 않 으 면 점프 기능 이 이상 합 니 다.
2.index.jsp 와 main.jsp 는 모두 웹 콘 텐 츠 폴 더 아래 에 있 습 니 다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.