我希望我的页面尽可能地对用户友好,并且我有一个想法,但在我想要解决它的方式上有点困难。
我正在使用primefaces,我希望有一个selectOneMenu 元素,该元素仅更改为一个outputText,其中包含selectOneMenu 中所选变量的值。有人有什么好主意吗?
我希望我的页面尽可能地对用户友好,并且我有一个想法,但在我想要解决它的方式上有点困难。
我正在使用primefaces,我希望有一个selectOneMenu 元素,该元素仅更改为一个outputText,其中包含selectOneMenu 中所选变量的值。有人有什么好主意吗?
这可以通过 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
或任何其他周围的容器代替。那么你就不需要包装器了。