JSF 2.0 - Ajax和渲染组件

时间:2011-10-21 00:54:20

标签: ajax java-ee jsf-2

当使用带有ajax行为的“rendered”属性时,我遇到了一些问题。我会粘贴代码,所以我认为它会更清晰:

<h:selectOneMenu value="#{registrarVentaController.esCobroChequeString}">
  <f:selectItem itemLabel="Efectivo" itemValue="false"/>
  <f:selectItem itemLabel="Cheque" itemValue="true"/>
  <f:ajax  execute="@this" render="@form"/>
</h:selectOneMenu>

<h:panelGroup id="panelMonto">
    <span>Monto:</span>
    <h:inputText value="#{registrarVentaController.monto}" rendered="#{registrarVentaController.banCobroCheque}"/>
    <h:inputText value="#{registrarVentaController.monto}" rendered="#{not registrarVentaController.banCobroCheque}"/>    
</h:panelGroup>

我的“#{registrarVentaController}”只是一个View Scoped JSF Managed Bean,有适当的setter / getters。

这种方式可行,我的意思是,当用户选择选项“ Efectivo ”时,panelGroup“ panelMonto ”会更新,我们会看到第一个inputText,相反,当用户选择选项“检查”时,用户将看到第二个inputText。

对于这种方法,我使用了“ f:ajax ”组件,我更新了整个 @form 以使此行为正常工作,我只想更新panelGroup“ panelMonto “(使用render =”panelMonto“它根本不起作用(我甚至尝试使用全范围分辨率:formName:panelMonto 而没有结果)。

我只是希望使用ajax =“idComponent”或类似行为进行渲染,以根据用户选择的内容显示某些部分。

最诚挚的问候!

注意(一个解决方案)

  

我设法得到了一个解决方案(作为输入   JSF rendered is not working   还有一点我自己)。我刚刚搬到一个新形式的部分,我   有兴趣根据用户选择过滤。这样我还是   使用@form ajax的渲染,它只会呈现这个新形式(而不是   我正在使用整个表格!)我还在想,是否还有   是一个不使用@form和组件/ ID的解决方案。

1 个答案:

答案 0 :(得分:0)

如果您使用

查看该怎么办?
render=":panelMonto"

不是

render=":formName:panelMonto"

还没有用?

这应该仅适用于

render="panelMonto" //because is in the same form

您可以添加更多代码吗? 你也可以检查你的浏览器(在chrome:右键单击,检查元素,网络),看看是否有任何活动?也许因为你而呈现同样的事情......