[英]JSF 2.0: cookies are not persisted immediately after AJAX call, HTTP request required
[英]preserve textbox data after an Ajax request with RenderResponse call with JSF 2.0
当我执行带有Instant = true的Ajax操作时,如何保留文本框值? 我需要渲染整个表格。 当执行ajax操作时,我想跳过验证并更新模型阶段。 我已经尝试过由ajax动作调用的方法的末尾使用FacesContext.getCurrentInstance()。renderResponse(),但是它不起作用。 旧值会出现在文本框中,或者某些数据会在某些文本框中被清除。 我还不想更新支持bean。
我要做的是将用户填写的信息保留在文本框中。 我使用的Ajax按钮会动态添加更多文本框,并且我在ajax按钮中设置了render属性,以渲染整个页面(我需要做一个完整的渲染)。 在用ajax动作调用的方法内部,我有“ FacesContext.getCurrentInstance()。renderResponse();”。
按钮代码是:
<h:commandButton id="btnAdd" value="Add" type="button">
<f:ajax event="click" execute="@form" render=":form" listener="#{ManagedBean.add()}"/>
</h:commandButton>
侦听器的动作是:
public void add() {
Person p = new Person();
ManagedBean.getPeople().add(p);
FacesContext.getCurrentInstance().renderResponse();
}
我有一个ui:repeat可以在“人员”列表中进行迭代,文本框的代码为:
<ui:repeat value="#{ManagedBean.people}" var="currentPerson" varStatus="i">
<h:inputText id="p" readonly="false" label="Person" value="#{currentPerson.name}" >
</h:inputText>
</ui:repeat>
我正在调试JSF阶段,并且得到了:
[2/7/12 15:06:33:584 CST] 0000002f SystemOut O START PHASE RESTORE_VIEW 1
[2/7/12 15:06:34:375 CST] 0000002f SystemOut O END PHASE RESTORE_VIEW 1
[2/7/12 15:06:34:981 CST] 0000002f SystemOut O START PHASE APPLY_REQUEST_VALUES 2
[2/7/12 15:06:35:553 CST] 0000002f SystemOut O END PHASE APPLY_REQUEST_VALUES 2
[2/7/12 15:06:36:089 CST] 0000002f SystemOut O START PHASE RENDER_RESPONSE 6
[2/7/12 15:06:44:364 CST] 0000002f SystemOut O END PHASE RENDER_RESPONSE 6
有没有一种方法可以在调用ajax之后从文本框中提取数据并在视图中再次将其设置为它们? 谢谢。
您可以将包装类用于人群。 然后,您可以让JSF调用设置器,而原始人员对象将不会受到影响。
MAG,米洛·范德泽
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.