在jsf(ul)中创建一个无序列表

jon*_*tek 1 jsf

嗨,我需要在jsf中实现一个无序列表 - 只是想知道我是否必须为此创建自定义标记?我尝试过使用<ul>但它目前正在jsf组件树之外.干杯

Bal*_*usC 5

但它目前正在落在jsf组件树之外

这表明您正在使用旧版JSF 1.0/1.1.有关JSF/Facelets的更多详细信息,请参阅:为什么将JSF/Facelets与HTML标记混合起来不是一个好主意?

你基本上有3种选择:

  1. 升级到JSF 1.2.它具有与JSF 1.0/1.1完全相同的环境要求,因此不需要任何其他更改,只需更换JAR就足够了.完成后,您可以毫不费力地写下"纯HTML".

    <ul>
        <li>item 1</li>
        <li>item 2</li>
        <li>item 3</li>
    </ul>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 如果升级真的不是一个选项,那将是非常奇怪的,那么将纯朴的HTML包装在其中<f:verbatim>.

    <f:verbatim>
        <ul>
            <li>item 1</li>
            <li>item 2</li>
            <li>item 3</li>
        </ul>
    </f:verbatim>
    
    Run Code Online (Sandbox Code Playgroud)

    请注意,您不一定需要包装每个标记.只有在"中途"遇到JSF组件时才关闭并重新打开它.即使以下是有效的.

    <f:verbatim>
        <ul>
            <li>item 1</li>
            <li></f:verbatim><h:outputText value="#{bean.some}" /><f:verbatim></li>
            <li>item 3</li>
        </ul>
    </f:verbatim>
    
    Run Code Online (Sandbox Code Playgroud)
  3. 使用JSF 1.0/1.1兼容的组件库,它提供了一个生成一个组件的盒子<ul><li>.只有一个想到:战斧 <t:dataList>.只需将其layout属性设置unorderedlist为让它生成一个<ul><li>.

    <t:dataList layout="unorderedList" value="#{bean.list}" var="item">
        <h:outputText value="#{item}" />
    </t:dataList>
    
    Run Code Online (Sandbox Code Playgroud)