栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

仿牛客网社区开发(开发社区首页)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

仿牛客网社区开发(开发社区首页)

仿牛客网社区开发(开发社区首页)
  • 概要
  • 开发社区首页,显示前10条帖子
    • entity - 编写DiscussPost实体类
    • dao - DiscussPostMapper
    • dao - discuss-mapper配置文件(sql)
    • service - DiscussPostService,UserService
    • controller - HomeController
    • 首页 - index.html
    • 帖子展示效果
  • 开发分页组件,分页显示帖子
    • Page组件
    • controller - getIndexPage()
    • index.html
    • 分页栏效果

概要


涉及的数据库表-帖子讨论表

user_id:表示帖子由哪个用户发布,关联user表

开发社区首页,显示前10条帖子 entity - 编写DiscussPost实体类

dao - DiscussPostMapper


selectDiscussPosts: 分页获取指定用户的帖子(即userId等于0,表示获取所有用户的帖子,通过动态sql拼接实现)
selectDisscussPostRows: 获取指定用户的总帖子数

dao - discuss-mapper配置文件(sql)

service - DiscussPostService,UserService



通过userId,获取到对应的User

controller - HomeController

首页 - index.html

使用thymeleaf模板引擎

map.user.headUrl 相当于 map.get(“user”) 得到User之后 , 调用getHeadUrl()

日期格式化

帖子展示效果

开发分页组件,分页显示帖子 Page组件
package com.lin.util;

public class Page {
    //当前页码
    private int current = 1;
    //显示上限
    private int limit = 10;
    //数据总数(用于计算总页数)
    private int rows;
    //查询路径(用于复用分页链接)
    private String path;

    public int getCurrent() {
        return current;
    }

    public void setCurrent(int current) {
        if(current > 1){
            this.current = current;
        }

    }

    public int getLimit() {
        return limit;
    }

    public void setLimit(int limit) {
        if(limit>=10 && limit<=100){
            this.limit = limit;
        }

    }

    public int getRows() {
        return rows;
    }

    public void setRows(int rows) {
        if(rows>0){
            this.rows = rows;
        }
    }

    public String getPath() {
        return path;
    }

    public void setPath(String path) {
        this.path = path;
    }

    
    public int getOffset(){
        return (current-1)*limit;
    }
    
    public int getTotal(){
        int pageNum = rows/limit;
        if(rows%limit==0){
            return pageNum;
        }else{
            return pageNum+1;
        }
    }
    
    public int getFrom(){
        int from = current-2;
        return from<1 ? 1 : from;
    }
    
    public int getTo(){
        int to = current+2;
        int total = getTotal();
        return to>total ? total : to;
    }
}

controller - getIndexPage()

index.html


@{${page.path}(current=${page.current-1})} 相当于 @{/index?current=xxx},springmvc 自动将current属性注入到Page中

分页栏效果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/284982.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号