如何与c:foreach及其后的其他字段一起工作



我的问题是,在我的主页,我得到变量capacidade完美。然后这里是c:forEach,另一个是"nome"。当我尝试坚持,然后我得到capacidade字段填充,但"nome"属性来null。我看到如果我在c:forEach之前推他,那么它就会起作用。但是我需要让他在c:forEach字段之后。

<s:decorate template="layout/form.xhtml">
            <ui:define name="label">capacidade:</ui:define>
            <h:inputText size="50" value="#{home.instance.capacidade}" maxlength="100" required="true" />
        </s:decorate>
        <a4j:outputPanel id="camposPresenca">
            <c:forEach items="#{home.presencas}" var="presenca" varStatus="loop">
                <s:decorate template="layout/form.xhtml">
                    <ui:define name="label">Presença #{loop.index + 1}</ui:define>
                    <rich:calendar enableManualInput="true" value="#{presenca.dataPresenca}" datePattern="dd/MM/yyyy" oninputblur="validarData(this);" required="true"/>
                    <h:inputText size="100" value="#{presenca.horarioPresenca}" maxlength="250" />
                </s:decorate>
            </c:forEach>
        </a4j:outputPanel>
        <s:decorate template="layout/form.xhtml">
            <ui:define name="label">Nome:</ui:define>
            <h:inputText size="50" value="#{home.instance.nome}" maxlength="100" required="true" />
有人知道怎么解决那个问题吗?

使用<ui:repeat>代替<c:forEach>,后者不是组件,并且在页面构建后不是树组件的一部分。

阅读这篇文章。

一般情况:JSTL元素破坏ViewScope bean

看起来home.getInstance()不是线程安全的

您可能有更大的问题需要在这里解决,但一个权宜之计是在这里进行布局之前保存实例值。

把它放在你的代码片段前面

<c:set var="home_instance" value = "${home.instance}"/>

并将home.instance替换为home_instance

相关内容

  • 没有找到相关文章

最新更新