我希望list
为List<String>
。首先,我显示一个inputText
,每次用户在inputText
中输入数据时,我都会添加另一个空inputText
。如果列表已经有一些值,我会显示全部+一个空值。
但它不起作用,因为字符串是不可变的。
我为String做了一个包装器作为一种解决方法,但我不喜欢它。
如何让inputText
引用支持列表中的位置?
<ice:repeat value="#{mBean.list}" var="xxx" valueChangeListener="{mBean.vcl}">
<ice:inputText partialSubmit="true" value="#{xxx}" />
</ice:repeat>
答案 0 :(得分:2)
我没有使用IceFaces,但如果<ice:repeat>
支持varStatus
属性,如JSTL的<c:forEach>
和Facelets'<ui:repeat>
,那么您可以提交给{ {1}}按列表索引而不是List<String>
属性访问单个项目时,作为以下Facelet示例:
var
这样,该值由列表的setter设置,List#set(index, value)
方法。
除此之外,最好的办法是将String包装在bean中。然而,我很肯定JSTL <ui:repeat value="#{bean.strings}" varStatus="loop">
<h:inputText value="#{bean.strings[loop.index]}" />
</ui:repeat>
也应该以上述方式为你工作,只要你没有将它嵌套在另一个JSF重复标签中。您只会错过<c:forEach>
中的valueChangeListener
属性/功能。