【发布时间】:2014-03-08 16:59:17
【问题描述】:
我在<h:inputText> 内部的<ui:repeat> 上遇到<f:ajax> 的问题。它成功地使用新值呈现 <h:outputText>,但不是 <h:inputText>(两者都绑定到同一个属性)。但是,如果我将<f:ajax> 更改为呈现@form 或@all,它就可以工作。但我显然不想/不需要渲染整个表单。
我正在使用 Mojarra 2.2.4。这是index.xhtml
<h:form>
<table>
<ui:repeat var="line" value="#{myBean.lines}">
<tr>
<td>
<h:inputText value="#{line.number}">
<f:ajax event="change" execute="@this" render="desc1 desc2" listener="#{myBean.onChangeLineNumber(line)}"/>
</h:inputText>
</td>
<td>
<h:inputText id="desc1" value="#{line.desc}"/>
<h:outputText id="desc2" value="#{line.desc}"/>
</td>
</tr>
</ui:repeat>
</table>
</h:form>
这是@ViewScoped bean 的相关位:
public void onChangeLineNumber(Line line)
{
line.setDesc("Some new text " + System.currentTimeMillis());
}
这是怎么引起的,我该如何解决?
【问题讨论】:
-
请提供线路和myBean类的代码