您如何在 PrimeFaces 中有条件地 hide/show 或 enable/disable 菜单项?
How do you conditionally hide/show or enable/disable menuitems in PrimeFaces?
我想执行以下操作:激活或不激活带有管理 bean (MB) 的菜单项,我想使用属性 "renderer"。但我不知道喜欢这样做。
我的代码如下:
<p:menuitem id="registrarPatio" value="Registrar un Patio"
actionListener="#{accionesRedirectMB.redireccionar('/PatioWEB/jsp/patios/registrarPatio.xhtml')}"
icon="ui-icon-folder-collapsed"/>
使用 actionListener,我将重定向另一个 url。
我想创建一个 MB,当我可以用我的 MB 激活或取消激活 menuItem 时。
例如:
这是我的 MB:
@ManagedBean (name = "activacionOpcionesMB")
public class ActivacionOpcionesMB {
"here reference of menuItem";
methodActiveMenuItem(){
here, How do you do for active it...
}
}
要启用或禁用(始终显示)您必须创建一个布尔变量并将其置于条件中,例如:
private boolean isDisabled = false; // with the getter and setter
if( condition)
{
isDisabled = true;
}
else
{
isDisabled = false;
}
之后,您在页面中添加禁用的呈现属性:
<p:menuitem ... disabled=#{activacionOpcionesMB.isDisabled} />
但您也可以将条件放在使用 'rendered'
的答案的 EL 行中
在寻找答案时,我得到了以下信息:
这是我的 xhtml 代码:
<p:menuitem id="registrarPatio" value="Registrar un Patio"
actionListener="#{accionesRedirectMB.redireccionar('/PatioWEB/jsp/patios/registrarPatio.xhtml')}"
icon="ui-icon-folder-collapsed" rendered="#{activacionOpcionesMB.activarItemPermisos()}"/>
我使用属性 "redered", rendered="#{activacionOpcionesMB.activarItemPermisos()}",其中 activacionOpcionesMB.activarItemPermisos() 是我的 MB。
这是我的 MB:
包 co.com.patios.mb.util;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean (name = "activacionOpcionesMB")
@RequestScoped
public class ActivacionOpcionesMB {
public boolean registrarPatio = true;
public void activarItemPermisos(){
if(true){
registrarPatio = false;
}
}
}
"registrarPatio" 是我用于活动或非活动菜单项的数据,默认为 true。
方法 activarItemPermisos() 是我激活 menuItem 的地方,在这里我使用条件,在我将 registrarPatio 设置为 false 之后。
您可以使用 "if" 来验证对其应用程序中不同选项的访问。
所以你必须更改代码:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean (name = "activacionOpcionesMB")
@RequestScoped
public class ActivacionOpcionesMB {
private boolean registrarPatio = true;
public boolean getRegistrarPatio()
{
return registrarPatio;
}
public void setRegistrarPatio(boolean registrarPatio)
{
this.registrarPatio = registrarPatio;
}
public boolean activarItemPermisos()
{
if(condition)
{
registrarPatio = true;
}
else
{
registrarPatio = false;
}
}
}
并在您的代码 xhtml 中:
<p:menuitem id="registrarPatio" value="Registrar un Patio"
actionListener="#{accionesRedirectMB.redireccionar('/PatioWEB/jsp/patios/registrarPatio.xhtml')}"
icon="ui-icon-folder-collapsed" rendered="#{activacionOpcionesMB.activarItemPermisos()}"/>
我想执行以下操作:激活或不激活带有管理 bean (MB) 的菜单项,我想使用属性 "renderer"。但我不知道喜欢这样做。
我的代码如下:
<p:menuitem id="registrarPatio" value="Registrar un Patio"
actionListener="#{accionesRedirectMB.redireccionar('/PatioWEB/jsp/patios/registrarPatio.xhtml')}"
icon="ui-icon-folder-collapsed"/>
使用 actionListener,我将重定向另一个 url。
我想创建一个 MB,当我可以用我的 MB 激活或取消激活 menuItem 时。
例如:
这是我的 MB:
@ManagedBean (name = "activacionOpcionesMB")
public class ActivacionOpcionesMB {
"here reference of menuItem";
methodActiveMenuItem(){
here, How do you do for active it...
}
}
要启用或禁用(始终显示)您必须创建一个布尔变量并将其置于条件中,例如:
private boolean isDisabled = false; // with the getter and setter
if( condition)
{
isDisabled = true;
}
else
{
isDisabled = false;
}
之后,您在页面中添加禁用的呈现属性:
<p:menuitem ... disabled=#{activacionOpcionesMB.isDisabled} />
但您也可以将条件放在使用 'rendered'
的答案的 EL 行中在寻找答案时,我得到了以下信息:
这是我的 xhtml 代码:
<p:menuitem id="registrarPatio" value="Registrar un Patio"
actionListener="#{accionesRedirectMB.redireccionar('/PatioWEB/jsp/patios/registrarPatio.xhtml')}"
icon="ui-icon-folder-collapsed" rendered="#{activacionOpcionesMB.activarItemPermisos()}"/>
我使用属性 "redered", rendered="#{activacionOpcionesMB.activarItemPermisos()}",其中 activacionOpcionesMB.activarItemPermisos() 是我的 MB。
这是我的 MB:
包 co.com.patios.mb.util;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean (name = "activacionOpcionesMB")
@RequestScoped
public class ActivacionOpcionesMB {
public boolean registrarPatio = true;
public void activarItemPermisos(){
if(true){
registrarPatio = false;
}
}
}
"registrarPatio" 是我用于活动或非活动菜单项的数据,默认为 true。
方法 activarItemPermisos() 是我激活 menuItem 的地方,在这里我使用条件,在我将 registrarPatio 设置为 false 之后。
您可以使用 "if" 来验证对其应用程序中不同选项的访问。
所以你必须更改代码:
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean (name = "activacionOpcionesMB")
@RequestScoped
public class ActivacionOpcionesMB {
private boolean registrarPatio = true;
public boolean getRegistrarPatio()
{
return registrarPatio;
}
public void setRegistrarPatio(boolean registrarPatio)
{
this.registrarPatio = registrarPatio;
}
public boolean activarItemPermisos()
{
if(condition)
{
registrarPatio = true;
}
else
{
registrarPatio = false;
}
}
}
并在您的代码 xhtml 中:
<p:menuitem id="registrarPatio" value="Registrar un Patio"
actionListener="#{accionesRedirectMB.redireccionar('/PatioWEB/jsp/patios/registrarPatio.xhtml')}"
icon="ui-icon-folder-collapsed" rendered="#{activacionOpcionesMB.activarItemPermisos()}"/>