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

时间:2010-06-25 10:51:01

标签: jsf

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

3 个答案:

答案 0 :(得分:5)

  

但它目前不属于jsf组件树

这表明您使用的是旧版JSF 1.0 / 1.1。有关详细信息,请参阅JSF/Facelets: why is it not a good idea to mix JSF/Facelets with HTML tags?

你基本上有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>
    

  2. 如果升级实际上不是一个非常奇怪的选项,那么在<f:verbatim>中包装普通HTML块。

    <f:verbatim>
        <ul>
            <li>item 1</li>
            <li>item 2</li>
            <li>item 3</li>
        </ul>
    </f:verbatim>
    

    请注意,您不一定需要包装每个标记。只有在“中途”遇到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>
    

  3. 使用JSF 1.0 / 1.1兼容组件库,它提供了一个生成<ul><li>框的组件。只有一个想到:Tomahawk <t:dataList>。只需将其layout属性设置为unorderedlist即可生成<ul><li>

    <t:dataList layout="unorderedList" value="#{bean.list}" var="item">
        <h:outputText value="#{item}" />
    </t:dataList>
    

答案 1 :(得分:0)

非常粗暴 - 我知道,但刚刚为这位好老人安顿下来:

<f:verbatim> tag e.g. `
<f:verbatim><ul></f:verbatim>
<f:verbatim><li></f:verbatim>Lorem ipsum dolor sit amet<f:verbatim></li></f:verbatim>
<f:verbatim><li></f:verbatim>Lorem ipsum dolor sit amet<f:verbatim></li></f:verbatim>
<f:verbatim><li></f:verbatim>Lorem ipsum dolor sit amet<f:verbatim></li></f:verbatim>
<f:verbatim><li></f:verbatim>Lorem ipsum dolor sit amet<f:verbatim></li></f:verbatim>
<f:verbatim><li></f:verbatim>Lorem ipsum dolor sit amet<f:verbatim></li></f:verbatim>
<f:verbatim></ul><f:verbatim>`

答案 2 :(得分:0)

您不必将每个开始标记,内部文本和结束标记嵌入到不同的<f:verbatim>中。你可以这样做:

<f:verbatim>
<ul>
 <li>foo</li>
 <li>bar</li>
 <li>baz</li>
</ul>
</f:verbatim>

或者,您可以使用Facelets处理JSF和HTML标记的交错,如魅力。

希望这有帮助。