2009-12-04 23 views
2

我旁边的facelet组成:为什么Facelets在使用<a href="url" jsfc="h:outputLink">时忽略链接的href属性?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" 
     xmlns:ui="http://java.sun.com/jsf/facelets" 
     xmlns:h="http://java.sun.com/jsf/html" 
     xmlns:f="http://java.sun.com/jsf/core"> 
<body> 
    <ui:composition> 
     <ul id="navigation"> 
      <li> 
       <a href="http://google.com" id="google1" jsfc="h:outputLink">google.com</a> 
      </li> 
      <li> 
       <h:outputLink id="google2" value="http://google.com"> 
        <h:outputText id="outputtext" value="google.com"/> 
       </h:outputLink> 
      </li> 
     </ul> 
    </ui:composition> 
</body> 
</html> 

必须有一个错误,因为我所期待看到的是几乎相同的最终的HTML的标记。但实际上这里是facelets生成的:

<ul id="navigation"> 
    <li><a id="google1" name="google1" href="">google.com</a></li> 
    <li><a id="google2" name="google2" href="http://google.com"><span id="outputtext">google.com</span></a> 
    </li> 
</ul> 

为什么忽略第一个链接的href属性?什么是正在做我想做的事情的正确方法?


另外还有一个问题:如果我在任何地方都使用jsfc,那么我应该怎么处理f:namespace的组件? <f:view>应该放在哪里?也许在template.xhtml?或者我应该忽略它?

回答

1

可能是facelets中的一个bug。此外,你为什么不忽略这个属性呢?简单<a href适合你。

+0

hm ..据我所知h:commandLink与一些javascript工作,但我想要正常的链接。我认为h:outputLink在jsf中是一种标准的方式来制作简单的标准html链接。 – Roman 2009-12-04 16:59:00

+0

我的意思是为第二个链接(h:outputLink)生成的html标记是我真正想要的。但我想用jsfc-attribute来实现这一点。 – Roman 2009-12-04 17:01:33

+0

为什么你想要jsfc属性? – Bozho 2009-12-04 17:11:20