使用百里香叶和比较

时间:2017-01-12 20:08:09

标签: java thymeleaf

我尝试使用 facelets JSF 将旧代码转换为 thymeleaf Spring ,但我在这一点上坚持了下来。

包含在嵌套的对象列表中。 这些对象也有列表。

public class ContainerGrid {

    private Collection<MiGrid> gridList = new ArrayList<MiGrid>();

    //Getter/Setters
}

public class MiGrid {
    private Collection<CeldaGrid> celdaGridList;
    //Getter/Setters
}

public class CeldaGrid {
    private int valor;
    private int index;
    private String texto;
    private int fila;
    private int col;
    private String estilo;
    //Getter/Setters
}

此代码正确创建网格,并为 id 名称提供正确的值。

我可以用百里香叶做的一件事就像我在 id 名称

中的两个部分一样

使用手镯

<ui:repeat value="#{containergrid.gridList}" var="eachCelda">
    <tr>
        <ui:repeat value="#{eachCelda.celdaGridList}" var="celda">
            <td id="gridPrincipal-#{celda.fila}-#{celda.col}">
                    <input class="celdaGrid#{celda.estilo}" type="text" 
                            id="#{celda.texto}_#{celda.index gt 9 ? '':0}#{celda.index}#{(celda.fila+1) gt 9 ? '':0}#{celda.fila+1}"
                            name="C#{celda.texto}#{celda.index gt 9 ? '':0}#{celda.index}#{celda.fila+1 gt 9 ? '':0}#{celda.fila+1}"
                            title="#{celda.texto}#{celda.index gt 9 ? '':0}#{celda.index}#{celda.fila+1 gt 9 ? '':0}#{celda.fila+1}"
                            value="#{celda.valor}" />
            </td>
        </ui:repeat>
    </tr>
</ui:repeat>    

因此,网格中的单元格将在id:

中包含此值

行1:C_0101 C_0​​201 P_0101 C_0​​301 C_0​​401 P_0201

ROW 2:C_0102 C_0202 P_0102 C_0302 C_0402 P_0202

使用 thymeleaf 我已正确创建网格,但我不知道如何在 th:id

中进行第二次比较
<table id="gridPrincipal">
    <tbody>
        <tr th:each="eachCelda,indexList : *{gridList}">
            <td th:each="celda,indexCelda: ${eachCelda.celdaGridList}">
                <input type="text"
                th:id="__${indexCelda.index}__ > 9 ? __${celda.texto}____${celda.index}__:__${celda.texto}__0__${celda.index}__"
                th:field="*{celdaGridList[__${indexCelda.index}__].valor}" />
            </td>
        </tr>
    </tbody>
</table>

我想添加第二个比较,就像我使用facelets或以其他方式做的那样。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

我认为它应该是这样的:

th:id="${celda.texto + (indexCelda.index > 9 ? '' : '0') + indexCelda.index + (celda.fila+1 > 9 ? '' : '0') + (celda.fila+1)}"
相关问题