我有一个表单,可以让我编辑 bean 列表(一次一个),使用可以在 bean 之间切换的按钮。
保持简单:
public class MyBean {
private String text;
}
public class MyController {
private List<MyBean> availableBeans = new ArrayList<MyBean>(); // has five MyBeans with random text
private MyBean selectedBean; // initialized with first element of list
private int index = 0;
public void nextBean() { index++; }
public void previousBean() { index--; }
private void refreshBean() { selectedBean = availableBeans.get(index); }
}
对于 html 部分,我有类似的东西
<h:form id="someForm">
<!-- stuff -->
<p:inputText value="#{myController.selectedBean.text}" />
<p:inplace editor="true" label="#{myController.selectedBean.text}" >
<p:inputText value="#{myController.selectedBean.text}" />
</p:inplace>
<!-- more stuff-->
</h:form>
如果我更改 inplace 标记内的文本,myBean 中的变量将更新得很好,但如果我只使用 inputText,bean 仍将具有旧值,即使我在网页上更改它也是如此。这是为什么?