我想在我的ISML模板中创建一个没有可迭代对象的循环。在此模板的运行时,将定义条件,或者更确切地说,定义迭代次数。有没有可能在java中有类似于"for (int = 0;i< 5;i++)“的循环状态,但是没有复杂的java代码?
发布于 2017-03-15 19:31:24
没有真正优雅的方式,我相信。这是因为这样的计算不属于视图层。这不仅适用于ISML,也适用于其他模板引擎,例如Thymeleaf。见这里。
ISLOOP需要iterator中的下列标准java实例之一
java.util.Enumeration
java.util.Iterator
java.util.Collection例如:
<isloop iterator="products" alias="product" counter="c">
</isloop>循环中的控制流可能随isbreak和isnext而改变。
<isloop
iterator = "{ISML variable identifier}"
[ alias = "{simple name}" ]
[ counter = "{counter name}" ]
>
... some HTML and ISML code ...
[<isnext>]
[<isbreak>]
</isloop>如果您真的需要这样做,可以创建像这样简单的自己的迭代器,并将其放在管道或ISML模块的管道字典中:
class MyIterator implements Iterator<Integer>
{
private final int max;
private int current;
MyIterator(int max)
{
this.max = max;
}
@Override
public boolean hasNext()
{
return current < max;
}
@Override
public Integer next()
{
return current++;
}
}您也可以使用嵌入在ISML、ISML模块等中的普通JSP脚本。如果您需要更具体的答案,请在您的问题中提供更多的上下文。
https://stackoverflow.com/questions/42811054
复制相似问题