您好我需要在jsf中实现一个无序列表 - 只是想知道我是否必须为此创建自定义标记?我尝试过使用<ul>
但它目前不在jsf组件树之外。干杯
答案 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种选择:
升级到JSF 1.2。它具有与JSF 1.0 / 1.1完全相同的环境要求,因此不需要任何其他更改,只需更换JAR就足够了。完成后,您可以毫不费力地写下“纯HTML”。
<ul>
<li>item 1</li>
<li>item 2</li>
<li>item 3</li>
</ul>
如果升级实际上不是一个非常奇怪的选项,那么在<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>
使用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标记的交错,如魅力。
希望这有帮助。