admin管理员组文章数量:1616690
前台模板
<div class="ui secondary segment form">
<!--查询表单需要是form提交数据-->
<form th:action="/blogs?page=${ adminBlogPage!}&size=${adminBlogSize!}" method="get"
class="ui segment form">
<!--fields代表一个区域,inline缩短区域的效果-->
<div class="inline fields">
<div class="field">
<input type="text" name="adminSearchTitle" placeholder="标题" value="${adminSearchTitle!}">
</div>
<div class="field">
<!--dropdown是下拉框效果-->
<div class="ui labeled action input">
<div class="ui type selection dropdown">
<input type="hidden" name="typeId" value="${(type.id)!}">
<i class="dropdown icon"></i>
<div class="default text"> 分类 </div>
<!--menu是菜单-->
<div class="menu">
<div data-value="-1" class="item">分类</div>
<#-- <div th:each="type : _{types}" th:data-value="_{type.id}" th:text="_{type.name}" class="item" data-value="1" >错误日志</div>-->
<#list typeList as type>
<div data-value="${type.id}" class="item">${type.name}</div>
</#list>
</div>
</div>
<a id="clear-btn" href="/admin/blogs" class="ui compact button">clear</a>
</div>
</div>
<div class="field">
<div class="ui checkbox">
<input type="checkbox" id="recommend" name="recommend">
<label for="recommend">推荐</label>
</div>
</div>
<div class="field">
<button type="submit" id="search-btn" class="ui mini teal basic button"><i
class="search icon"></i>搜索
</button>
</div>
</div>
</form>
<div id="table-container">
<table th:fragment="blogList" class="ui compact teal table">
<thead>
<tr>
<th></th>
<th>标题</th>
<th>类型</th>
<th>推荐</th>
<th>状态</th>
<th>更新时间</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<#list pageInfo.list as blogVo>
<tr>
<td>${blogVo_index}</td>
<td>${blogVo.blog.title}</td>
<td>${(blogVo.type.name)!""}</td>
<td>${(blogVo.blog.recommend==1)?string('是','否')}</td>
<td>${(blogVo.blog.published==1)?string('发布','草稿')}</td>
<td th:text="_{#dates.format(blog.updateTime,'yyyy-MM-dd')}">2020-3-02</td>
<td>
<a href="/admin/blogs/${blogVo.blog.id}/input }"
class="ui mini teal basic button">编辑</a>
<a href="/admin/blogs/${blogVo.blog.id}/delete}" class="ui mini red basic button">删除</a>
</td>
</tr>
</#list>
</tbody>
<tfoot>
<tr>
<th colspan="7">
<div class="ui mini pagination menu">
<div class="item"><a
href="blogs?adminSearchTitle=${adminSearchTitle!}&adminBlogPage=1">首页</a>
</div>
<div class="item"><a
href="blogs?adminSearchTitle=${adminSearchTitle!}&adminBlogPage=${pageInfo.prePage}">上一页</a>
</div>
<#list pageInfo.navigatepageNums as page>
<div class="item"><a
href="blogs?adminSearchTitle=${adminSearchTitle!}&adminBlogPage=${page}">${page}</a>
</div>
</#list>
<div class="item"><a
href="blogs?adminSearchTitle=${adminSearchTitle!}&adminBlogPage=${(pageInfo.hasNextPage)?string(pageInfo.nextPage?string,pageInfo.pages?string)}">下一页</a>
</div>
<div class="item"><a
href="blogs?adminSearchTitle=${adminSearchTitle!}&adminBlogPage=${pageInfo.pages}">尾页</a>
</div>
</div>
<a href="#" th:href="@{/admin/blogs/input}" class="ui mini right floated teal basic button">新增</a>
</th>
</tr>
</tfoot>
</table>
<div class="ui segment m-inline-block">
<p>
当前第<span>${pageInfo.pageNum}</span>页,总<span>${pageInfo.pages}</span>页,共<span>${pageInfo.total}</span>条记录
</p>
</div>
@GetMapping({"blogs"})
public String blogsSimpleGet(
@RequestParam(defaultValue = "1") Integer adminBlogPage,
@RequestParam(defaultValue = "5") Integer adminBlogSize,
@RequestParam(defaultValue = "") String adminSearchTitle,
@RequestParam(required = false) Boolean recommend,
@RequestParam(required = false) Long typeId,
HttpSession session,
Model model
) {
model.addAttribute("adminBlogPage",adminBlogPage);
model.addAttribute("adminBlogSize",adminBlogSize);
model.addAttribute("adminSearchTitle",adminSearchTitle);
// session.setAttribute("typeId",typeId);
//获取 type 标签
List<Type> types = typeService.selectByExample(new TypeExample());
List<BlogVO> blogList = blogService.selectBlogWithType(adminBlogPage,adminBlogSize,adminSearchTitle,recommend);
if(typeId!=null) {
Optional<Type> type = types.stream().filter(ty -> typeId.equals(ty.getId())).findAny();
model.addAttribute("type",type.orElse(null));
}
//存入标签
model.addAttribute("typeList",types);
model.addAttribute("pageInfo",new PageInfo<BlogVO>(blogList));
return "admin/blogs";
}
一对多,sql 语句一般都用 left join 查询
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis//DTD Mapper 3.0//EN" "http://mybatis/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.lyr.blog3.mapper.manual.BlogVOMapper">
<resultMap id="blogVOMap" type="com.lyr.blog3.pojo.vo.BlogVO">
<association property="blog" javaType="com.lyr.blog3.pojo.po.Blog">
<id property="id" column="id"/>
<result property="title" column="title"/>
<result property="content" column="content"/>
<result property="flag" column="flag"/>
<result property="views" column="views"/>
<result property="updateTime" column="update_time"/>
<result property="typeId" column="type_id"/>
<result property="firstPicture" column="first_picture"/>
<result property="shareStatement" column="share_statement"/>
<result property="published" column="published"/>
<result property="appreciation" column="appreciation"/>
<result property="commentabled" column="commentabled"/>
<result property="recommend" column="recommend"/>
<result property="createTime" column="create_time"/>
<result property="typeId" column="type_id"/>
<result property="userId" column="user_id"/>
<result property="tagIds" column="tag_ids"/>
</association>
<association property="type" javaType="com.lyr.blog3.pojo.po.Type">
<id property="id" column="typeid"/>
<result property="name" column="typename"/>
</association>
<association property="user" javaType="com.lyr.blog3.pojo.po.User">
<id property="id" column="uid"/>
<result property="nickname" column="nickname"/>
<result property="username" column="username"/>
<result property="email" column="email"/>
<result property="avatar" column="avatar"/>
</association>
<collection property="tags" ofType="com.lyr.blog3.pojo.po.Tag">
<id property="id" column="tagid"/>
<result property="name" column="tagname"/>
</collection>
</resultMap>
<sql id="blog_all_Column_List">
b.id, b.title, b.first_picture,b.flag, b.views,b.appreciation, b.share_statement, b.commentabled,
b.published, b.recommend, b.create_time, b.update_time, b.type_id, b.user_id, b.tag_ids
</sql>
<sql id="tag_all_Column_List">
t.`id` as typeid, t.`name` as typename
</sql>
<select id="selectBlogList" resultMap="blogVOMap" >
select <include refid="blog_all_Column_List" />,<include refid="tag_all_Column_List" />
from t_blog b left join t_type t on b.`type_id` = t.`id` where 1=1
<if test="searchTitle!='' and searchTitle!=null ">
and b.title like concat('%',#{searchTitle},'%')
</if>
<if test="recommend">
and b.recommend = 1
</if>
</select>
</mapper>
总结技巧, 比如分页搜索,一般会在搜索框中 加个 <input type=hidden />
保存 上一页的记录,比如当前的 page 页数,当前搜索的数量
,还有上一次请求的搜索参数,也一起设置
版权声明:本文标题:#管理系统分页模板总结 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1728742297a1171197.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论