当前位置: 首页 > news >正文

临沂医院手机网站建设wordpress如何上传附件

临沂医院手机网站建设,wordpress如何上传附件,wordpress 小兽,如何制作数据库网站Twitter Bootstrap具有非常好的分页UI #xff0c;在这里我将向您展示如何使用Spring Data Web分页功能和Thymeleaf条件评估功能来实现它。 引导程序中的标准分页 受Rdio启发的简单分页#xff0c;非常适合应用程序和搜索结果。 大块很难错过#xff0c;易于扩展#xff0… Twitter Bootstrap具有非常好的分页UI 在这里我将向您展示如何使用Spring Data Web分页功能和Thymeleaf条件评估功能来实现它。 引导程序中的标准分页 受Rdio启发的简单分页非常适合应用程序和搜索结果。 大块很难错过易于扩展并提供较大的点击区域。 从Bootstrap文档显示分页的原始源代码非常简单 div classpaginationullia href#Prev/a/lilia href#1/a/lilia href#2/a/lilia href#3/a/lilia href#4/a/lilia href#5/a/lilia href#Next/a/li/ul /div 您可以看到这只是一个模拟代码要使其通过正确的超链接URL动态显示页码我需要对现有代码进行很多更改。 因此让我们从头开始先更改域层然后再更改应用程序服务层表示层。 最后是将它们粘合在一起的配置。 域层更改 域层的唯一更改是BlogPostRepository 。 在具有检索按publishedTime排序的publishedTime发布BlogPost列表的方法之前 public interface BlogPostRepository extends MongoRepositoryBlogPost, String{ ...ListBlogPost findByPublishedIsTrueOrderByPublishedTimeDesc(); ... } 现在我们需要获取分页结果列表。 使用Spring Data Page 我们将返回PageBlogPost而不是ListBlogPost 并传递Pageable参数 public interface BlogPostRepository extends MongoRepositoryBlogPost, String{ ...PageBlogPost findByPublishedIsTrueOrderByPublishedTimeDesc(Pageable pageable); ... }应用程序服务层更改 只需使用BlogPostRepository新功能应用程序服务层的更改也非常简单 BlogService界面 public interface BlogService { ...PageBlogPost getAllPublishedPosts(Pageable pageable); ... } BlogServiceImpl类 public class BlogServiceImpl implements BlogService { ...private final BlogPostRepository blogPostRepository; ...Overridepublic PageBlogPost getAllPublishedPosts(Pageable pageable) {PageBlogPost blogList blogPostRepository.findByPublishedIsTrueOrderByPublishedTimeDesc(pageable);return blogList;} ... }表示层更改 Spring Data Page界面具有许多不错的功能来获取当前页码获取总页数等。但是仍然缺少让我仅显示总分页的部分页面范围的方法。 因此我创建了一个适配器类以使用其他功能包装Sprng数据页面接口。 public class PageWrapperT {public static final int MAX_PAGE_ITEM_DISPLAY 5;private PageT page;private ListPageItem items;private int currentNumber;private String url;public String getUrl() {return url;}public void setUrl(String url) {this.url url;}public PageWrapper(PageT page, String url){this.page page;this.url url;items new ArrayListPageItem();currentNumber page.getNumber() 1; //start from 1 to match page.pageint start, size;if (page.getTotalPages() MAX_PAGE_ITEM_DISPLAY){start 1;size page.getTotalPages();} else {if (currentNumber MAX_PAGE_ITEM_DISPLAY - MAX_PAGE_ITEM_DISPLAY/2){start 1;size MAX_PAGE_ITEM_DISPLAY;} else if (currentNumber page.getTotalPages() - MAX_PAGE_ITEM_DISPLAY/2){start page.getTotalPages() - MAX_PAGE_ITEM_DISPLAY 1;size MAX_PAGE_ITEM_DISPLAY;} else {start currentNumber - MAX_PAGE_ITEM_DISPLAY/2;size MAX_PAGE_ITEM_DISPLAY;}}for (int i 0; isize; i){items.add(new PageItem(starti, (starti)currentNumber));}}public ListPageItem getItems(){return items;}public int getNumber(){return currentNumber;}public ListT getContent(){return page.getContent();}public int getSize(){return page.getSize();}public int getTotalPages(){return page.getTotalPages();}public boolean isFirstPage(){return page.isFirstPage();}public boolean isLastPage(){return page.isLastPage();}public boolean isHasPreviousPage(){return page.hasPreviousPage();}public boolean isHasNextPage(){return page.hasNextPage();}public class PageItem {private int number;private boolean current;public PageItem(int number, boolean current){this.number number;this.current current;}public int getNumber(){return this.number;}public boolean isCurrent(){return this.current;}} } 使用此PageWrapper 我们可以包装从BlogService返回的PageBlogPost并将其放入SpringMVC UI模型。 请参阅博客页面的控制器代码 Controller public class BlogController ...RequestMapping(value /blog, method RequestMethod.GET)public String blog(Model uiModel, Pageable pageable) {PageWrapperBlogPost page new PageWrapperBlogPost(blogService.getAllPublishedPosts(pageable), /blog);uiModel.addAttribute(page, page);return blog;} ... } Pageable是从PageableArgumentResolver传入的我将在后面解释。 另一个技巧是我还将视图URL传递给PageWrapper 它可用于在分页栏中构造Thymeleaf超链接。 由于我的PageWrapper非常通用因此我为分页栏创建了一个html片段因此当需要分页时可以将其用于应用程序页面中的任何位置。 该片段html使用Thymeleaf th:if根据链接是否被禁用来在静态文本或超链接之间动态切换。 并且它使用th:href构造具有正确页码和页面大小的URL。 !-- Pagination Bar -- div th:fragmentpaginationbardiv classpagination pagination-centeredulli th:class${page.firstPage}? disabled : span th:if${page.firstPage}← First/spana th:if${not page.firstPage} th:href{${page.url}(page.page1,page.size${page.size})}← First/a/lili th:class${page.hasPreviousPage}? : disabledspan th:if${not page.hasPreviousPage}«/spana th:if${page.hasPreviousPage} th:href{${page.url}(page.page${page.number-1},page.size${page.size})} titleGo to previous page«/a/lili th:eachitem : ${page.items} th:class${item.current}? active : span th:if${item.current} th:text${item.number}1/spana th:if${not item.current} th:href{${page.url}(page.page${item.number},page.size${page.size})}span th:text${item.number}1/span/a/lili th:class${page.hasNextPage}? : disabledspan th:if${not page.hasNextPage}»/spana th:if${page.hasNextPage} th:href{${page.url}(page.page${page.number1},page.size${page.size})} titleGo to next page»/a/lili th:class${page.lastPage}? disabled : span th:if${page.lastPage}Last →/spana th:if${not page.lastPage} th:href{${page.url}(page.page${page.totalPages},page.size${page.size})}Last →/a/li/ul/div /divSpring配置变更 最后一步是将它们放在一起。 幸运的是在更新代码之前我做了一些研究。 Doug Haber 撰写了一篇非常不错的博客文章 其中介绍了Spring MVCSpring Data和Java Config 。 Doug在他的博客中提到了一些陷阱尤其是Pageable参数需要一些配置技巧 为了让Spring知道如何将参数转换为Pageable对象您需要配置HandlerMethodArgumentResolver。 Spring Data提供了一个PageableArgumentResolver但是它使用了旧的ArgumentResolver接口而不是新的Spring 3.1HandlerMethodArgumentResolver接口。 XML config可以为我们解决这种差异但是由于我们使用的是Java Config因此我们必须手动进行一些操作。 幸运的是如果您知道正确的魔术咒语就可以轻松解决此问题…… 道格·哈伯Doug Haber 在Doug的帮助下我将此参数解析器添加到了WebConfig类中 Configuration EnableWebMvc ComponentScan(basePackages com.jiwhiz.blog.web) public class WebConfig extends WebMvcConfigurerAdapter { ...Overridepublic void addArgumentResolvers(ListHandlerMethodArgumentResolver argumentResolvers) {PageableArgumentResolver resolver new PageableArgumentResolver();resolver.setFallbackPagable(new PageRequest(1, 5));argumentResolvers.add(new ServletWebArgumentResolverAdapter(resolver));} ... } 完成所有这些更改后我的博客列表的页面顶部和底部将具有分页栏并且它始终最多具有5个页码中间​​是当前编号并且已禁用。 分页栏还具有第一和开头以前的链接 然后在年底最后环节。 我还在管理页面用户列表和评论列表中使用了它并且效果很好。 参考来自Jiwhiz博客的JCG合作伙伴 Yuan Ji的Spring Data和Thymeleaf实现Bootstrap分页 。 翻译自: https://www.javacodegeeks.com/2013/03/implement-bootstrap-pagination-with-spring-data-and-thymeleaf.html
http://www.yutouwan.com/news/33988/

相关文章:

  • 莒南网站建设制作网站公司年收入多少
  • 把网站做静态化是什么意思久久网站建设
  • 新手怎样做网站推广两当网站建设
  • 重慶网站建设装修公司网络营销怎么做
  • 重庆网站建站系统长春市星宿科技网站建设公司怎么样
  • 响应式布局模板网站免费下载百度百度一下
  • 阿里云网站方案建设书模板重庆施工员证书查询网
  • 企业网站策划实训做网站的系统
  • 西宁设计网站建设佛山网站建设服务
  • 泉州wap网站制作建设网站是什么样的
  • 免费网站建设模板下载宁波seo网站
  • 科技医疗网站建设梧州论坛组织参观活动
  • 经典网站建设wordpress域名授权系统
  • 申报湖南创新型省份建设专项网站软件开发工程师时薪
  • 如何做本地网站现在什么网站做外贸的最好
  • 重庆建设网站网站名字重复
  • 台式机做网站服务器广州网站建设高端网
  • pc端网站优缺点时代强个人网站
  • 莆田专业网站制作房地产网站建设哪家好
  • 腾讯wordpress主机win10优化
  • 如何把网站放到百度湘潭做网站推荐磐石网络
  • 公司建立网站怎么做分录网络优化论文
  • 新服务器做网站如何配置传奇页游什么好玩
  • html模板怎么使用网站优化怎么样
  • 如何对网站进行分析新能源电动车
  • 如何创建公司网站seo服务公司上海
  • dedecms网站后台管理seo新方法
  • 养老网站建设的意义深圳思弘装饰设计
  • 摩洛哥网站后缀网站图片自动轮换怎么做的
  • 珠海城乡建设网站福建建设注册管理中心网站