Ale*_*lex 13 forms viewstate ajax jsf jsf-2
我有
<h:form>
<h:commandLink action="#{my_fake_ajax_link}">
<h:outputText value="Link" />
<f:ajax render=":mydiv" />
</h:commandLink>
</h:form>
<h:panelGroup layout="block" id="mydiv">
<h:form>
<h:commandLink action="#{mybean.delete(0)}">
<h:outputText value="Here" />
<f:ajax render="@form" />
</h:commandLink>
</h:form>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)
当我点击"my_fake_ajax_link"时,我必须在"删除"链接上单击两次.这只是一个例子.我没有这个真实案例.我在页面上有多个表单,我不能只在一个表单中添加所有表单.
我检查了问题是什么,它是:
mydiv
使用ajax 进行刷新.如何添加ViewState?如何在不使用一个表单的情况下使其工作?这看起来像是一个JSF错误.我不想自动刷新该div
jQuery("#mydiv").load(document.location.href);
Run Code Online (Sandbox Code Playgroud)
但在最坏的情况下,我会尽可能的.
Bal*_*usC 23
这是jsf.js
处理ajax响应的JSF 自动包含库中的已知问题.另请参阅JSF规范问题790,该问题已在即将推出的JSF 2.3中修复.同时,对于JSF 2.0/2.1/2.2,您必须<h:form>
在render
attribtue中明确指定另一个的ID 以触发正确添加视图状态.
<h:form>
<h:commandLink action="#{my_fake_ajax_link}">
<h:outputText value="Link" />
<f:ajax render=":mydiv :mydivForm" />
</h:commandLink>
</h:form>
<h:panelGroup layout="block" id="mydiv">
<h:form id="mydivForm">
<h:commandLink action="#{mybean.delete(0)}">
<h:outputText value="Here" />
<f:ajax render="@form" />
</h:commandLink>
</h:form>
</h:panelGroup>
Run Code Online (Sandbox Code Playgroud)
不,这不会导致ajax响应中的任何开销或标记重复.或者,使用OmniFacesfixviewstate.js
.
归档时间: |
|
查看次数: |
10755 次 |
最近记录: |