【问题标题】:Thymeleaf select and CriteriaBuilderThymeleaf 选择和 CriteriaBuilder
【发布时间】:2016-01-09 20:15:14
【问题描述】:

这是我想做的一件简单的事情,却以某种方式引发了一个复杂的问题。我要为此发疯了...

我想使用标准生成器来比较我的页面字段;得到所有小于,所以使用“le”作为数字(“lessThanOrEqualTo”在这里不起作用)。

如何从 Thymeleaf 选择中发送一个整数,以便如果未选择它就不会被添加到您的搜索条件构建器中?

在选择中,thymeleaf 强制您将字符串“未定义”选项作为第一个选项。如果我使用整数作为字段类型,它不会将此“未定义”选项绑定到发布的模型,我稍后会从标准构建器中将其过滤掉。不过这里的数字还可以。如果未选择或未定义,我需要它工作。

如果我采取另一种方式并为 Pages 选择一个字符串字段,那么它将不会被解析为... le(表达式 x, 表达式 y)

在 CriteriaBuilder 中。我不能转

 b.get("pages") 

进入

Expression<? extends Number> myInteger

我都试过了......

                        <select th:field="*{pages}"  ng-model="bookData.pages">
                        <option selected="selected" value="">  select an option  </option>
                        <option th:each="selectItem: ${refData.pages}"

                              th:value="${selectItem.value}" 
                              th:text="${selectItem.label}">Pages</option>
                        </select>


    List<Predicate> predList = new LinkedList<Predicate>();

    CriteriaBuilder cb = em.getCriteriaBuilder();
    CriteriaQuery<Book> c =cb.createQuery(Book.class);
    Root<Book> b = c.from(Book.class);



    if( (!pages.equals("")) && (!pages.equals("undefined")) ){
      predList.add(cb.lessThanOrEqualTo(b.get("pages"), pages));

    }

如何从 Thymeleaf 选择中发送一个整数以在查询中进行比较,这样如果未选择就不会添加到查询中?

啊啊啊啊!

【问题讨论】:

    标签: select thymeleaf criteria-api


    【解决方案1】:

    我通过从表单中检查我的 Angularjs 找到了解决方案

       $scope.processSearchForm = function() {
    
        var aData = $scope.bookData.author;
        var gData = $scope.bookData.genre;
        var pData = $scope.bookData.pages;
    
        if(typeof pData === 'undefined'){
            pData='0';
        }
    

    如果它不存在并因此未定义/未选择,则将其设置为“0”。

    然后我选择了 Integer 字段,显然是正确的方法。 它绑定到模型并使用 CriteriaBuilder 从 Query 中过滤掉 0。

    约翰尼·奥。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-03
      相关资源
      最近更新 更多