我需要阻止它,因为单击按钮时我会丢失页面中的参数。
这是我的代码:
<h:commandLink styleClass="ui-btn ui-btn-c ui-icon-arrow-r ui-btn-icon-right" value="Continuar" action="#{metaWEB.btnProximo()}" />
我在这里找到了一些结果,比如 How make commandButton not fully refresh page? How to use f:ajax?
但是我的 Action 使用了来自页面的消息,所以它需要重新加载表单,而不是页面。
我认为这可能是我的解决方案,但我不明白他做了什么:(
感谢高级
最佳答案
只需将其设为 ajax(异步)按钮而不是常规(同步)按钮即可。这是嵌套 <f:ajax>
的问题在现有标签内。
<h:commandLink ...>
<f:ajax execute="@form" render="@form" />
</h:commandLink>
execute="@form"
告诉 JSF 处理整个表单(命令组件所在的表单中包含的所有输入组件)。 render="@form"
告诉 JSF 将整个表单更新为 ajax 响应(因此,如果您在同一个表单中显示消息,它们也会更新)。
不要忘记确保返回 null
或 void
来自按钮的操作方法,否则 View 可能仍会因非 null
而改变/void
导航结果。
另见:
关于javascript - JSF Prevent commandLink 重新加载页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21163347/