2009-12-04 67 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