【问题标题】:How i can get tuple value (querydsl) since thymeleaf?自百里香以来,我如何获得元组值(querydsl)?
【发布时间】:2018-01-26 20:53:17
【问题描述】:

我不知道从 thymeleaf 开始我如何获得 queryDSL 的元组值

因为后端我发送这个值:

List<Tuple> products = productServiceImpl.findProductByFiltersPaginate(null, 0, 1, null);

ModelAndView view = new ModelAndView();
        view.addObject("products",products);
        view.setViewName(ViewConst.MAIN_LAYOUT);
        view.addObject("view","catalog");
        return view;

但在前面(百里香)我不知道如何获取值。我的代码如下:

<div th:each="product :${products}">
             <h2 th:text="${product}"></h2>
        </div>
    </div>

但我不知道变量名后面放的是什么。 我已经尝试过这些方法: ${product.name}, ${product['name']}, ${product[0]} 但它们都不起作用。

如果我只输入这个 ${product},它会以这种格式返回每个值

[39, Moto KTM DUKE, /images/products/product39/m_39_0.jpg]

【问题讨论】:

  • 元组的完整包是什么?您将如何访问 java 中的名称? products.get(0).???
  • 嗨,因为 java 我访问的方式有两种: product.get(0, Product.class) 或 product.get(qProduct.title) 。根据您的回答,它返回了此消息 EL1004E: Method call: Method get(java.lang.Integer) cannot be found on com.querydsl.core.types.QTuple$TupleImpl type

标签: java spring tuples thymeleaf querydsl


【解决方案1】:

根据您的回复,我认为这些可能有效:

product.get(0, Product.class)

<!-- Note, you have to replace your.package.Product with the actual package -->
<div th:each="product :${products}" th:with="class=${T(your.package.Product).class}">
  <h2 th:text="${product.get(0, class)}" />
</div>

product.get(qProduct.title)

<!-- For this, you need to add qProduct on the model -->
<div th:each="product :${products}">
  <h2 th:text="${product.get(qProduct.title)}" />
</div>

您也可以使用 toArray(),尽管我不完全确定结果如何:

<div th:each="product :${products}" th:with="data=${product.toArray()}">
  <h2 th:text="${data[0]}" />
</div>

【讨论】:

  • 谢谢,你的答案是正确的,它解决了我的问题
猜你喜欢
  • 2018-05-23
  • 2014-10-20
  • 2021-01-09
  • 2014-09-21
  • 1970-01-01
  • 1970-01-01
  • 2020-12-30
  • 2021-11-20
  • 1970-01-01
相关资源
最近更新 更多