h:c中的inputText:forEach不保存List中的元素

时间:2015-09-06 18:19:46

标签: jsf foreach jstl

我试图有两个<c:foreach>,其中一个是显示不同的日子,每天有8行,有3个不同的输入框。

这是代码

<h:form>
    <c:forEach begin="0" end="#{treningNovi.dana-1}" varStatus="loop">
        <c:forEach varStatus="j" begin="0" end="7">
            <h:inputText id="set" value="#{treningNovi.set[j.index+(loop.index*8)]}"/>
        </c:forEach>
    </c:forEach>

    <h:commandButton value="Spremi" 
                     action="#{treningNovi.SpremiVjezbe}"
                     styleClass="btn btn-primary" />
</h:form>

第一个foreach代表天,第二个foreach代表inputText字段。

这是我的bean类

@ManagedBean(name="treningNovi")
public class TreningNovi {

    private List<Integer> set;

    @PostConstruct
    public void initList() {
        set = new ArrayList<Integer>();
    }

    public String SpremiVjezbe() {
        System.out.println(set);
        return "index";
    }

    public List<Integer> getSet() {
        return set;
    }
}

由于某种原因,它不会在列表中正确保存元素,并且在按下Spremi按钮后列表为空。谁知道解决方案?谢谢

注意:我尝试使用j.index和数字代替j.index +(loop.index * 8),但它们似乎都没有用,所以索引不是问题

同样列表有List<Integer> set但代码没有正确格式化,我不知道如何解决它

1 个答案:

答案 0 :(得分:0)

使用-n中的值初始化列表,它应该有效。现在它正在尝试向不存在的元素插入值(如set [5],但列表大小为0,因此无法完成)。