如何在jsf标签中设置条件

时间:2013-03-20 13:07:58

标签: jsf-1.2

可以在下面帮助任何人。

我需要在jsf中使用命令链接标记打开一个新的浏览器选项卡,仅当条件为真时。

如何在jsf标签中设置条件?

2 个答案:

答案 0 :(得分:0)

您可以使用rendered属性,并使用EL表达式完成它们。使用rendered属性,只有条件为true时才会显示该链接。

如果要根据条件在新浏览器选项卡中打开commandlink,可以使用rendered属性轻松实现:

<h:commandLink action="my_navigation_rule"
               rendered="#{!MyBean.booleanValue}" />

<h:commandLink action="my_navigation_rule"
               rendered="#{MyBean.booleanValue}" target="_blank"/>

由于rendered条件是排他性的,它只会打印一个commandLinks。

有关JSF表达式语言(EL)的更多信息(对于在jsf标签中设置条件非常有用) - &gt; here

注意:我知道可以改进解决方案,因为您可以使用EL表达式来确定target值,但在我看来这个解决方案更容易。

答案 1 :(得分:0)

您可以使用commandMenu的托管bean actionListener,然后获取测试条件并重新定向到新标签中的页面,如果它是真的...

enter image description here

import javax.faces.event.ActionEvent;

公共类PageBean {

String page;

public PageBean() {
}

public void getMenu(ActionEvent actionEvent) {
    // Add event code here...

/ *添加你的代码以获取和测试条件并基于条件true和false conditon get commandMenu Id按以下方式点击菜单

请确保命令菜单的id与您要在下一个选项卡中打开的名称相同,在菜单单击时,就像在我的情况下我已将命令菜单ID指定为page1         String id = actionEvent.getComponent()。getId();         System.out.println(“菜单ID:”+ id); 现在将获取的菜单ID设置为具有正确页面扩展名的页面变量,并在测试验证后点击菜单后,在manged bean的操作中调用pariable以重定向到下一个选项卡中的页面* /

    page = id;
    System.out.println("Value assigned to the page from the menu Id is :"+page);
}

public String getPage() {
    return page;
}

public void setPage(String page) {
    this.page = page;
}

public void dashContentEntryCheck(){
    System.out.println("entered inside dashboard content task flow");
}

}