首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在没有可迭代对象的情况下,在ISML中创建循环的最佳方法是什么?

在没有可迭代对象的情况下,在ISML中创建循环的最佳方法是什么?
EN

Stack Overflow用户
提问于 2017-03-15 13:21:03
回答 1查看 2.3K关注 0票数 0

我想在我的ISML模板中创建一个没有可迭代对象的循环。在此模板的运行时,将定义条件,或者更确切地说,定义迭代次数。有没有可能在java中有类似于"for (int = 0;i< 5;i++)“的循环状态,但是没有复杂的java代码?

EN

回答 1

Stack Overflow用户

发布于 2017-03-15 19:31:24

没有真正优雅的方式,我相信。这是因为这样的计算不属于视图层。这不仅适用于ISML,也适用于其他模板引擎,例如Thymeleaf。见这里

ISLOOP需要iterator中的下列标准java实例之一

代码语言:javascript
复制
java.util.Enumeration
java.util.Iterator
java.util.Collection

例如:

代码语言:javascript
复制
<isloop iterator="products" alias="product" counter="c">

</isloop>

循环中的控制流可能随isbreakisnext而改变。

代码语言:javascript
复制
<isloop
iterator = "{ISML variable identifier}"
[ alias = "{simple name}" ]
[ counter = "{counter name}" ]
>
... some HTML and ISML code ...
[<isnext>]
[<isbreak>]
</isloop>

如果您真的需要这样做,可以创建像这样简单的自己的迭代器,并将其放在管道或ISML模块的管道字典中:

代码语言:javascript
复制
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脚本。如果您需要更具体的答案,请在您的问题中提供更多的上下文。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42811054

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档