is not interpreted as passthrough element-6ren"> is not interpreted as passthrough element-我不明白为什么这段代码有效: 这段代码不起作用: Login 最佳答案 只有满足以下条件,HTML 元素才会成为传递元素: 至少有一个 jsf:xxx attribute来自 http://xmln-6ren">
gpt4 book ai didi

jsf - <一个jsf :rendered ="#{...}"> is not interpreted as passthrough element

转载 作者:行者123 更新时间:2023-12-04 21:50:53 26 4
gpt4 key购买 nike

我不明白为什么这段代码有效:

<h:link value="Login" rendered="#{sessionBean.userInSessionBean == null}"  />

这段代码不起作用:
<a jsf:rendered="#{sessionBean.userInSessionBean == null}">Login</a>

最佳答案

只有满足以下条件,HTML 元素才会成为传递元素:

  • 至少有一个 jsf:xxx attribute来自 http://xmlns.jcp.org/jsf命名空间。
  • 至少有一个“identifying attribute ”与特定的 JSF 组件相关联。

  • 对于 <a> element 一个标识属性是必需的,这样 JSF 才能决定是否将其解释为 <h:commandLink> , <h:outputLink><h:link> .如果没有标识属性,JSF 将不知道您实际打算使用什么组件,因此任何 jsf:xxx属性将被忽略。 jsf:rendered不足以作为标识属性,因为它出现在每个 JSF 组件上,因此 JSF 仍然不知道您指的是哪个。

    鉴于您似乎打算拥有一个 <h:link> ,然后使用 jsf:outcome作为识别属性。
    <a jsf:outcome="login" jsf:rendered="#{empty sessionBean.userInSessionBean}">Login</a>

    一个完全不同的替代方法是将纯 HTML 包装在 <ui:fragment rendered> 中。 .另见 How to conditionally render plain HTML elements like <div>s?

    关于jsf - <一个jsf :rendered ="#{...}"> is not interpreted as passthrough element,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35637987/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com