【问题标题】:show and hide <h1> dynamically in JSF [duplicate]在 JSF 中动态显示和隐藏 <h1> [重复]
【发布时间】:2016-03-10 15:35:07
【问题描述】:

我正在使用 JSF 2.2 和 PrimeFaces 5.2。

在我看来,我体内有以下内容:

<div class="headerDetails">

    <h1> Nombre Empresa: #{loginController.login.empresa} </h1>

    <h1> Bienvenido: #{loginController.login.nombre}</h1>

</div>

我想根据登录的用户动态隐藏和显示第一个 &lt;h1&gt;。完成此操作的最佳方法是什么?

【问题讨论】:

  • 您可以将&lt;h1&gt;(和&lt;h2&gt;,如果需要)包含在标准JSF 组件中,例如&lt;h:panelGroup layout="block" rendered="#{booleanCondition}"&gt;(或&lt;ui:fragment rendered="#{booleanCondition}"&gt;),在rendered 属性中指定所需的条件。这将有条件地呈现 HTML &lt;div&gt; 元素(如果指定了 idstylestyleClass 等属性之一,则它将呈现 HTML &lt;span&gt; 元素)。
  • 太棒了!有效!我应该知道该怎么做

标签: jsf jsf-2.2


【解决方案1】:

这是我为感兴趣的人所做的:

<div class="headerDetails">

    <h:panelGroup layout="block" rendered="#{loginTipoController.isEmpresarial()}">

        <h1> Nombre Empresa: #{loginController.login.empresa} </h1>

    </h:panelGroup>

    <h1> Bienvenido: #{loginController.login.nombre}</h1>

</div>

我的控制器如下所示:

@ManagedBean
@ApplicationScoped
public class LoginTipoController {

    private LoginTipo tipo;

    public LoginTipo getTipo() {
        return tipo;
    }

    public void setTipo(LoginTipo tipo) {
        this.tipo = tipo;
    }

    @PostConstruct
    public void init()
    {   
        tipo = new LoginTipo();

        //setting the value from get request
        Map<String, String> params = FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap();

        tipo.setTipo(params.get("tipo"));
    }

    public boolean isEmpresarial()
    {
        if(tipo.getTipo().equals("emp")) return true;

        else return false;
    }

}

如果用户是“ind”,我不想显示&lt;h1&gt; 标签。如果是“emp”,我想显示标签。

【讨论】:

    猜你喜欢
    • 2014-07-31
    • 1970-01-01
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 2011-03-26
    • 1970-01-01
    • 2023-01-26
    • 2011-06-23
    相关资源
    最近更新 更多