在JSF 1.2中显示或隐藏HTML DIV

时间:2010-06-30 19:21:46

标签: jsf

当Apache My Faces JSF 1.2实现在幕后呈现HTML页面时,甚至可以设置/编码将有条件地显示纯HTML表格/ DIV(而不是jsf组件)的内容。当我搜索时,我看到了,使用h:panelGroup是一个解决方案,但我还没有尝试过,在这里发布任何更好的方法或方法。

它几乎想要说 - 在java中编写javascript代码并在呈现HTML时将其注入 - 是否可能?

谢谢,

1 个答案:

答案 0 :(得分:12)

有几种方式。

  1. 使用<h:panelGroup layout="block">。它呈现HTML <div>元素。

    <h:panelGroup layout="block" rendered="#{bean.condition}">
        content
    </h:panelGroup>
    
  2. 将HTML <div>元素包含在<h:panelGroup>中。如果没有任何客户端属性,例如idstyleClassonclick等,<h:panelGroup>将不会呈现任何内容。有了它们,它会呈现<span>元素(如果<div>设置为layout,则为block

    <h:panelGroup rendered="#{bean.condition}">
        <div>content</div>
    </h:panelGroup>
    
  3. 将HTML <div>元素包含在<f:verbatim>

    <f:verbatim rendered="#{bean.condition}">
        <div>content</div>
    </f:verbatim>
    
  4. MyFaces生成HTML的方式并不那么特别。 Mojarra JSF实现也是如此。竞争对手Struts2,Spring MVC,Wicket,Tapestry等等。也。 Microsoft ASP.NET MVC也。 PHP也。事实上所有服务器端语言。仅仅是因为webbrowser不理解它们。它只能理解HTML / CSS / JS;)

    关于将JavaScript与Java / JSP / JSF混合使用,您可能会发现this article很有用。