JFinal上手demo(2)-阿里云开发者社区

开发者社区> 沉默王二> 正文

JFinal上手demo(2)

简介: JFinal上手demo
+关注继续查看

2.IndexController.java


/**
 * IndexController
 */
public class IndexController extends Controller {
    public void index() {
        render("index.jsp");
    }
}

注意:jfianl在经过1.InitConfig.java中的me.add("/", IndexController.class, "/index");路由后,你在地址栏输入


http://localhost:8080/ymeng/


就会访问到IndexController 的index方法(这是jfianl的一种默认写法)中,当然,这与IndexController.class, "/index")中的第三个参数是无关的,第三个参数指定的是前端的路径,

然后index()方法指定你访问到的页面内容是index.jsp。


3.MembersController.java


public class MembersController extends Controller {
    public void index() {
        setAttr("memPage", Members.me.paginate(getParaToInt(0, 1), 10));
        render("memlist.jsp");
    }
}

注意:我们只需要知道,这个方法就是将数据库中的数据指定到memlist.jsp中的memPage属性中。


4.Members.java


public class Members  extends Model<Members>{
    private static final long serialVersionUID = 4460796361065191809L;
    public static final Members me = new Members();// 创建模型
    /**
     * @param pageNumber 第几页
     * @param pageSize 每页大小
     * @return
     */
    public Page<Members> paginate(int pageNumber, int pageSize) {
        return paginate(pageNumber, pageSize, "select *", "from members order by realname");
    }
}

注意:名如其意,paginate方法看起来就是来处理分页问题的。至于第三、第四、更多的参数则是sql语句拼接。


那么后端我们需要开发的内容就完结了,目录结构如下:

image.png



添加前端文件

image.png



1.constants.js


var common = {
    ctx : "/ymeng"
};


把项目的根路径记录下来,在js中可能要用到,本例子中暂时没有用到。


2.taglib.jsp


<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<c:set var="ctx" value="${pageContext.request.contextPath}" />


导入常用的jstl,以及设置项目路径,这个很重要!!!!


3._paginate.jsp

<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ include file="/common/jsp/taglib.jsp"%>

<c:if test="${urlParas == null}">
    <c:set var="urlParas" value="" />
</c:if>
<c:if test="${(totalPage > 0) && (currentPage <= totalPage)}">
    <c:set var="startPage" value="${currentPage - 4}" />
    <c:if test="${startPage < 1}" >
        <c:set var="startPage" value="1" />
    </c:if>
    <c:set var="endPage" value="${currentPage + 4}" />
    <c:if test="${endPage > totalPage}" >
        <c:set var="endPage" value="totalPage" />
    </c:if>

    <div class="pagination">
        <c:if test="${currentPage <= 8}">
            <c:set var="startPage" value="1" />
        </c:if>

        <c:if test="${(totalPage - currentPage) < 8}">
            <c:set var="endPage" value="${totalPage}" />
        </c:if>

        <c:choose>
            <c:when test="${currentPage == 1}">
                <span class="disabled prev_page">上页</span>
            </c:when>
            <c:otherwise>
                <a href="${ctx}${actionUrl}${currentPage - 1}${urlParas}" class="prev_page">上页</a>
            </c:otherwise>
        </c:choose>

        <c:if test="${currentPage > 8}">
            <a href="${ctx}${actionUrl}${1}${urlParas}">${1}</a>
            <a href="${ctx}${actionUrl}${2}${urlParas}">${2}</a>
            <span class="gap">…</span>
        </c:if>

        <c:forEach begin="${startPage}" end="${endPage}" var="i">
            <c:choose>
                <c:when test="${currentPage == i}">
                    <span class="current">${i}</span>
                </c:when>
                <c:otherwise>
                    <a href="${ctx}${actionUrl}${i}${urlParas}">${i}</a>
                </c:otherwise>
            </c:choose>
        </c:forEach>

        <c:if test="${(totalPage - currentPage) >= 8}">
            <span class="gap">…</span>
            <a href="${ctx}${actionUrl}${totalPage - 1}${urlParas}">${totalPage - 1}</a>
            <a href="${ctx}${actionUrl}${totalPage}${urlParas}">${totalPage}</a>
        </c:if>

        <c:choose>
            <c:when test="${currentPage == totalPage}">
                <span class="disabled next_page">下页</span>
            </c:when>
            <c:otherwise>
                <a href="${ctx}${actionUrl}${currentPage + 1}${urlParas}" class="next_page" rel="next">下页</a>
            </c:otherwise>
        </c:choose>
    </div>
</c:if>

这里面我加入了“${ctx}”,否则会访问路径错误!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
1.3 万亿条数据查询,如何做到毫秒级响应?
作为中国最大的知识共享平台,我们目前拥有 2.2 亿注册用户,3000 万个问题,网站答案超过 1.3 亿。
3 0
如何使用 Arthas 定位 Spring Boot 接口超时
公司有个渠道系统,专门对接三方渠道使用,没有什么业务逻辑,主要是转换报文和参数校验之类的工作,起着一个承上启下的作用。
3 0
Spring Cloud 终于大改版?为什么要用日期来做版本号?
Spring Cloud终于改了 最近Spring Cloud把版本号从A到Z的伦敦地铁站,改为以日期命名了。
5 0
新来的妹纸问我 AJAX 请求为什么不安全?我没有回答出来。。。
开篇三问 AJAX请求真的不安全么? AJAX请求哪里不安全?
7 0
Redis 如何存储上亿级别的用户状态?
前段时间,在网上看到一道面试题: 如何用redis存储统计1亿用户一年的登陆情况,并快速检索任意时间窗口内的活跃用户数量。 觉得很有意思,就仔细想
6 0
4 大软件架构,你们公司用哪种?
如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目
3 0
ES写入毛刺问题?从原理到调优
ES是一个非常完善的搜索引擎,可以用于业务搜索、数据分析,其周边生态产品也十分丰富; 正是由于ES的完善与通用性,用户使用ES的场景越来越多样化,通用的配置已经无法达到用户的稳定性需求,并且难以给出通用的最佳实践,需要专门的为某些场景进行调优。 例如,update频繁的场景下的性能调优。
5 0
【深入浅出版】Java全套学习路线规划及配套视频和笔记
 工作难找,入坑不易,请根据自己的情况再做决定,且行且珍惜!        大家都说近两年疫情导致行情不太好,确实比起往年工作机会是少了很多,但我觉得事事是相对的。我入坑比较早,好几年了,各种各样的人和事都遇到过,也面试过很多人!
7 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载