1

我希望我的页面尽可能地对用户友好,并且我有一个想法,但在我想要解决它的方式上有点困难。

我正在使用primefaces,我希望有一个selectOneMenu 元素,该元素仅更改为一个outputText,其中包含selectOneMenu 中所选变量的值。有人有什么好主意吗?

4

1 回答 1

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或任何其他周围的容器代替。那么你就不需要包装器了。

于 2012-08-09T09:31:28.227 回答