spring - 有没有 Spring MVC 兼容的 UI 框架?

标签 spring jsp spring-mvc user-interface pagination

我最近正在学习 Spring MVC,令我印象深刻的是,实现一些常见的事情(例如分页)是多么容易。例如我有一个像这样的 Controller 方法:

@RequestMapping(value="/showAllItems")
public String showAllItems(Model model, Pageable pageable) {

    model.addAttribute("itemPage", itemService.getAllItems(pageable));

    return ViewNamesHolder.SHOW_ALL_ITEMS;
}

虽然 Spring 通过创建这个可分页对象在后端为我们提供了令人难以置信的支持,但据我所知,没有任何 UI 框架在前端支持这种 Spring 对象。写完这个完美的简单的Controller方法后,我们又在前端独自一人,思考这个可分页对象将如何显示。

例如有Bootstrap。漂亮的界面,非常好的功能。本文是一个很好的示例,介绍了如何将 Spring MVC 与 Bootstrap 集成:http://www.javacodegeeks.com/2013/03/implement-bootstrap-pagination-with-spring-data-and-thymeleaf.html

问题是,我们仍然需要编写大量代码。这是上面文章中的 jsp 示例,最后仅生成一个分页栏:

<!-- Pagination Bar -->
<div th:fragment='paginationbar'>
  <div class='pagination pagination-centered'>
    <ul>
      <li th:class='${page.firstPage}? 'disabled' : '''>
        <span th:if='${page.firstPage}'>← First</span>
        <a th:if='${not page.firstPage}' th:href='@{${page.url}(page.page=1,page.size=${page.size})}'>← First</a>
      </li>
      <li th:class='${page.hasPreviousPage}? '' : 'disabled''>
        <span th:if='${not page.hasPreviousPage}'>«</span>
        <a th:if='${page.hasPreviousPage}' th:href='@{${page.url}(page.page=${page.number-1},page.size=${page.size})}' title='Go to previous page'>«</a>
      </li>
      <li th:each='item : ${page.items}' th:class='${item.current}? 'active' : '''>
        <span th:if='${item.current}' th:text='${item.number}'>1</span>
        <a 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>
      </li>
      <li th:class='${page.hasNextPage}? '' : 'disabled''>
        <span th:if='${not page.hasNextPage}'>»</span>
        <a th:if='${page.hasNextPage}' th:href='@{${page.url}(page.page=${page.number+1},page.size=${page.size})}' title='Go to next page'>»</a>
      </li>
      <li th:class='${page.lastPage}? 'disabled' : '''>
        <span th:if='${page.lastPage}'>Last →</span>
        <a th:if='${not page.lastPage}' th:href='@{${page.url}(page.page=${page.totalPages},page.size=${page.size})}'>Last →</a>
      </li>
    </ul>
  </div>
</div>

多亏了作者,这个 JSP 页面才可以重用。但我们仍然需要自动处理此类事情的框架,这就是我所说的 Spring MVC Compatible。这在前端看起来应该像这样,它几乎自动处理分页:

<div springUI:fragment='paginationbar' springUI:object='itemPage'/>

也许还有一些附加属性,如firstAndLastButtonsVisible 或currentPageDisabled 等。

对于上面的示例,由于我们在对象 itemPage 中拥有所需的所有信息(pageCount 等),因此这种简单(或几乎)是可能的。

现在我的问题又来了,是否有一个非常兼容 Spring MVC 的 UI 框架?

最佳答案

也许您正在寻找这种方法 - Rich Web Application with Spring MVC CRUD demo

在那篇文章中,它使用 Spring MVC Controller 与 ZK UI 组件无缝协作。

关于spring - 有没有 Spring MVC 兼容的 UI 框架?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19741531/

相关文章:

javascript - 是否可以从 jsp 的 java 部分执行 javascript 函数?

rest - 用Jackson(或Spring)解码Base64

spring-mvc - 格式化 :field in Thymeleaf

java - 多个JTA事务: no session associated with the current transaction

spring - 将正则表达式数组传递给基于 spring 的 mongo @Query

java.lang.ClassCastException : java. lang.String 无法转换为 com.example.service.AlbumService

spring - 在 Spring 3.1 中使用记住我的功能登录用户

java - Spring 3 MVC,Tomcat Web 应用程序在几次请求后挂起

java - 用户 'root' @'localhost' Spring Boot MySql 访问被拒绝

java - 在将请求从 servlet 分派(dispatch)到 jsp 后,我们能否以某种方式更改地址栏中的 url