【问题标题】:change the components of one panel when an event occurs in another people当另一个人发生事件时更改一个面板的组件
【发布时间】:2013-04-28 17:24:55
【问题描述】:

假设我有一个左侧面板,我想根据左侧面板上的组件事件更改另一个面板中的表单。 我如何在 JSF 中做到这一点?

我搜索了一下,发现primefaces中的tabView可以做这样的事情。 但我想知道是否有另一种方式来改变另一个面板的内容 来自一个小组的某个事件。

我知道这个问题不是很具体,但我在谷歌上搜索并找不到满意的答案,所以在这里问。

感谢您的帮助:)

【问题讨论】:

  • 你为什么要标记primefaces,你用过吗?
  • RongNK 是的,先生,目前我正在使用 primemfaces 构建应用程序。我使用过 tabView、面板、图表和数据表等组件。在这样的问题中标记素面是否不合适?对不起,如果我做到了。我将再次检查问题的规则
  • “根据左侧面板上组件的事件更改另一个面板中的表单。”。如果您使用 Primefaces,我认为这很简单。
  • RongNK 先生,但我不知道该怎么做。我是否需要使用支持 bean 的成员变量代表 jsf 页面上的组件?我是否必须将这些组件绑定到我的 managedBean 中的 UIInput 和 UIOutput?
  • 在左侧面板上,您可以使用 html 标签或 jsf 组件(我认为您需要 jsf 组件)。 “另一个面板”你可以在 <ui:define,<ui:include 中交换 src 从 bean 获取,src 将包含 facelets 文件,当组件(从左侧面板)触发事件时,它将更改 src。

标签: jsf-2 primefaces tabview


【解决方案1】:

1.您在中心有一些上下文:

左:

<p:commandButton update="pncenter" actionListener="#{bean.update}"/>

中心:

<p:outputPanel id="pncenter">
<p:outputPanel id="pn1" rendered="#{bean.render eq '1'}">
  // content here
</p:outputPanel>
<p:outputPanel id="pn2" rendered="#{bean.render eq '2'}">
  // content here
</p:outputPanel>
///....
</p:outputPanel>

2。你有动态中心:(每个中心上下文存储在一个 xhtml 文件中)

左:

<p:commandButton update="pncenter" actionListener="#{bean.update}"/>

中心:

<p:outputPanel id="pncenter">
  <ui:include src="#{centerBean.link}"/>
</p:outputPanel>

bean.update 方法

centerBean.link = "/module/test1.xhtml"; // /module/test2.xhtml  /module/test3.xhtml

【讨论】:

  • 感谢您的回答。这有很大帮助。我仍然有一个疑问如果我使用 p:layoutUnit 而不是 p:panel 那么 layoutUnit 不会更新,并且只有在刷新页面后才会反映更改。我必须在 layoutUnit 中放置另一个面板才能使其工作。那里可能有什么问题?
  • 我正在使用
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-11
  • 1970-01-01
相关资源
最近更新 更多