有条件地基于布尔值切换组件属性的值

时间:2012-04-19 19:49:08

标签: jsf components conditional-rendering

我有一个JSF数据表,其中一列包含艺术家列表以及每个我想要显示或隐藏特定艺术家在您点击链接时制作的专辑的commandLink。

我刚刚开始学习JSF,我想知道在单击链接时,在“显示相册”和“隐藏相册”之间更改commandLink的值是什么样的最佳做法?是否可以在不使用javascript的情况下执行此操作?

由于

2 个答案:

答案 0 :(得分:4)

您可以在EL中使用条件运算符?:。如果布尔表达式计算true,则将执行第一个语句,否则执行第二个语句。

<h:commandLink ... value="#{bean.showAlbums ? 'Show' : 'Hide'} Albums" />

您甚至可以使用与使用显示/隐藏实际相册相同的条件。

答案 1 :(得分:0)

您的链接

<a4j:commandLink value="#{myBean.value}" action="#{myBean.toggleValue}" reRender="myLink" id="myLink"/>

你的豆子

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

@ManagedBean(name="myBean")
@ViewScoped
public class MyBean {
  boolean show = true;

  public void toggleValue() {
    this.show = !this.show;
  }

  public String getValue() {
    return this.show ? "Show" : "Hide";
  }
}