Struts2 JSTL итератор тег - PullRequest
       28

Struts2 JSTL итератор тег

3 голосов
/ 15 июня 2011

Я искал, как реализовать вещь в Struts2 jstl, но я не могу найти путь.

Когда я загружаю страницу JSP из действия, у меня есть список списков строк.

Я хочу создать как div, так как элементы имеют список, но внутри каждого div я хочу создать как ссылки в качестве третьего элемента подсписка.

Поэтому я использую s: тег итератора для разбора списка.Но я не знаю, как итерировать «$ {item [2]}» раз внутри первого итератора.

Код будет выглядеть примерно так:

<s:iterator value="functions" var="item" status="stat">
        <span class="operation">${item[1]}</span>
        <div id="${item[0]}">
            <s:for var $i=0;$i<${item[2]};$i++>
                <a href="#" id="link_$i">Link $i</a>
            </s:for>
        </div>
</s:iterator>

Где япоместите тег s: for, где я хотел бы повторить "$ {item [2]}" раз ...

Кто-нибудь может мне помочь?

Заранее большое спасибо,Aleix

Ответы [ 2 ]

2 голосов
/ 15 июня 2011

Убедитесь, что у вас есть базовая библиотека JSTL на вашей странице JSP:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

И просто используйте <c:forEach>. Как то так:

<c:forEach var="i" begin="0" end="${item[2] - 1}">
    <a href="#" id="link_${i}">Link ${i}</a>
</c:forEach>
1 голос
/ 16 июня 2011

Вы должны использовать List of Map, если необходимо, например:

Класс действия

// List of raw type Map
private List<Map> functions = Lists.newArrayList(); // with getter

@Override
public String execute() {
    // loops {
        Map map = Maps.newHashMap();
        map.put("id", id);
        map.put("operation", operation);
        map.put("count", count); // count is int/Integer
        functions.add(map);
    // }

    return SUCCESS;
}

.jsp

<s:iterator value="functions">
    <span class="operation">${operation}</span>
    <div id="${id}">
        <s:iterator begin="0" end="count - 1" var="link">
            <a href="#" id="link_${link}">Link ${link}</a>
        </s:iterator>
    </div>
</s:iterator>


или <s:a /> (пример)

<s:a action="action_name" id="%{link}" anchor="%{link}">Link ${link}</s:a>

выход

<a id="[id]" href="/namespace/action#[anchor]">Link [link]</a>

См. Также

Направляющие Struts2 -> Ссылка на тег -> с: итератор

...