我希望我的页面尽可能方便用户使用,我有一个想法,但我想解决它的方式有点困难。
我正在使用primefaces,我希望有一个selectOneMenu元素,它只会改变为一个outputText,其中包含selectOneMenu中所选变量的值。任何人都有一些漂亮的想法?
答案 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
或任何其他周围的容器。那你就不需要包装了。