如何在JSF中将OneMenu元素更改为outputText

时间:2012-08-09 09:15:01

标签: jsf primefaces selectonemenu

我希望我的页面尽可能方便用户使用,我有一个想法,但我想解决它的方式有点困难。

我正在使用primefaces,我希望有一个selectOneMenu元素,它只会改变为一个outputText,其中包含selectOneMenu中所选变量的值。任何人都有一些漂亮的想法?

1 个答案:

答案 0 :(得分:1)

这可以使用ajax和部分渲染来完成。这是我的想法草图(未经测试和简单的JSF):

<h:panelGroup id="wrapper">
  <h:selectOneMenu value="#{myBean.myValue}" 
                   rendered="#{myBean.myValue == someInitialValue}" ...>
     <f:ajax render="wrapper"/>
       ... (your select items here)
  </h:selectOneMenu>
  <h:outputText value="#{myBean.myValue}" 
                rendered="#{myBean.myValue != someInitialValue}" .../>
</h:panelGroup>

这就是它的作用:

h:selectOneMenu的值将被初始化,菜单将仅在初始值时呈现。

更改值后,将重新渲染周围的面板组,隐藏菜单并显示h:outputText

你需要一个包装panelGroup,因为在页面加载时outputText不存在。如果您的表单很小,您也可以render=@form或任何其他周围的容器。那你就不需要包装了。