可以在下面帮助任何人。
我需要在jsf中使用命令链接标记打开一个新的浏览器选项卡,仅当条件为真时。
如何在jsf标签中设置条件?
答案 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,然后获取测试条件并重新定向到新标签中的页面,如果它是真的...
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");
}
}