就是一个页面的分页功能的代码,仿照的是Bilibili的分页功能,代码逻辑为根据当前的页码,决定分页按钮的显示个数和显示值: <div class="vui_pagenation"> <button class="vui_button vui_pagenation--btn vui_pagenation--btn-side">上一页</button> <% int pager = (int) request.getAttribute("page"); %> <button class="vui_button vui_pagenation--btn vui_pagenation--btn-num<%=(pager==1?" vui_button--active-blue vui_button--active":"")%>"><% out.print("1</button>"); if (pager > 5) { %> <span class="vui_pagenation--extend">...</span> <% } int start, total; if (pager <= 5) { start = 2; total = 7; } else { start = pager - 2; total = start + 5; } for (int i = start; i < total; i++) { %> <button class="vui_button vui_pagenation--btn vui_pagenation--btn-num<%=(i==pager?" vui_button--active-blue vui_button--active":"")%>"><%=i%> </button> <% } %> <span class="vui_pagenation--extend">...</span> <button class="vui_button vui_pagenation--btn vui_pagenation--btn-side">下一页</button> </div>
如果使用html的高亮,结果就是: <div class="vui_pagenation"> <button class="vui_button vui_pagenation--btn vui_pagenation--btn-side">上一页</button> <% int pager = (int) request.getAttribute("page"); %> <button class="vui_button vui_pagenation--btn vui_pagenation--btn-num<%=(pager==1?" vui_button--active-blue vui_button--active":"")%>"><% out.print("1</button>"); if (pager > 5) { %> <span class="vui_pagenation--extend">...</span> <% } int start, total; if (pager <= 5) { start = 2; total = 7; } else { start = pager - 2; total = start + 5; } for (int i = start; i < total; i++) { %> <button class="vui_button vui_pagenation--btn vui_pagenation--btn-num<%=(i==pager?" vui_button--active-blue vui_button--active":"")%>"><%=i%> </button> <% } %> <span class="vui_pagenation--extend">...</span> <button class="vui_button vui_pagenation--btn vui_pagenation--btn-side">下一页</button> </div>
另外,由于IDEA里面button标签老是自动换行,导致生成的html里按钮的值前后都有空格,非常讨厌。所以最后我使用 out.print("1</button>");
在java代码中输出html片段,这下降维打击了属于是。 上述代码可见,jsp虽然比较灵活,但是太过复杂而且丑陋,编写、阅读、调试都非常不方便,这个年头还有用jsp的,可真是珍惜动物了。 |