我有一个视图,其中我有一个p:commandButton
的表单,一切正常,因为我使用forward
这就是我需要的:
<h:form id="formularioAltas">
// More code
<p:commandButton value="Guardar" action="#{altasBean.agregarRefaccion()}" update="cboAlmacen cboEstado cboCategoria" />
</h:form>
方法agregarRefaccion()
无效因此不会更改页面,我认为forward
会在该操作后发生,因为它始终具有相同的网址。那是好的,这就是我需要的。
在同一视图中,我有另一种形式,我遇到h:commandButton
的问题。
<h:form id="myForm" enctype="multipart/form-data" prependId="false">
// More code
<h:commandButton id="button" style="background-color: black; color: aliceblue" value="Guardar imagen para #{altasBean.refaccion.idRefaccion}" action="#{altasBean.subirImagen()}" />
</h:form>
subirImagen()
方法也是无效,所以我认为在该行动之后会发生前进......但它并没有。页面更新和网址更改,这意味着重定向就是这样。
我将永远需要前锋。无论是p:commandButton
还是h:commandButton
。
我认为PrimeFaces和p:commandButton
与JSF h:commandButton
的区别有所不同。
所以我需要一个前锋 h:commandButton
。
修改
我总是有这样的网址 blabla / AlmacenGM /
但当h:commandButton
出现时,网址为: blabla / AlmacenGM / faces / altas.xhtml
网址发生变化。我试图在方法"altas"
中返回字符串subirImagen()
,因此应该进行转发,但它仍然会更改网址。
有什么想法吗?
答案 0 :(得分:2)
p:commandButton
没有前锋。它实际上是一个ajax请求你正在执行什么,因为它是它的默认行为。
但是,标准JSF h:commandButton
会执行转发请求,只要您在操作方法中返回带有导航案例的String
即可。如果你看到重定向发生在那里,你必须在你的bean端强制它。
另见: