2011-08-22 40 views
1

我正在使用JSF 2.0,Maven 2,Springframework 3和Glassfish 3.我試圖使用FixedThemeResolver,但我無法將標記插入到facelet中。我寫了這樣一個頁面:我怎樣才能看到「http://www.springframework.org/tags」標籤庫?

<?xml version='1.0' encoding='utf-8'?> 
<!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:em="http://java.sun.com/jsf/composite/emcomp" 
    xmlns:st="http://www.springframework.org/tags"> 
<head> 
    <link href="${facesContext.externalContext.requestContextPath}/files/basic.css" rel="stylesheet" type="text/css" media="all"/> 
    <title><ui:insert name="title">Default Title</ui:insert></title> 
</head> 
<body> 
    <h1><ui:insert name="heading">Default heading</ui:insert></h1> 
    <p><st:theme code='css' /></p> 
    <em:komponenta textik="Experimental component"/> 
    <ui:insert name="content" /> 
    <hr/> 
    <i>${appVersion}</i> 
    <ui:include src="/WEB-INF/templates/footer.xhtml" /> 
</body> 
</html> 

它不起作用。在Eclipse中,我收到警告,名稱空間http://www.springframework.org/tags沒有任何標記庫。在網絡瀏覽器中,我得到警告:此頁面調用使用前綴st聲明的XML名稱空間http://www.springframework.org/tags,但該名稱空間不存在taglibrary。

我已經宣佈Spring MVC的依賴在我的pom.xml:

<dependency> 
    <groupId>org.springframework</groupId> 
    <artifactId>spring-webmvc</artifactId> 
    <version>3.0.5.RELEASE</version> 
</dependency> 

應該足夠多,但似乎並非如此。非常感謝任何提示。

回答

2

我已經自己解決了這個問題。 BalusC是正確的。 Spring標籤只能用於JSP。 Facelet是別的東西(並且令人遺憾)。它工作方式不同。因此我不能在facelet中使用JSP標籤。 Nevertheles在這個簡單的例子中,我寫了幾分鐘自己的自定義標籤。我只需要從存儲在classpath中的文本文件中獲取值並將其放入傳出的HTML中。

也是正確的答案是:這不是錯誤,這是一個功能。你不能在facelet中使用JSP標籤。

1

您的pom.xml是否列出了Spring Maven存儲庫?

ID是「彈簧行家釋放」,名稱是「春天的M​​aven版本庫」和網址爲「http://maven.springframework.org/release」

+1

我不是春天的傢伙,但從我所收集的內容來看,Spring MVC標籤只是JSP標籤,並且不會在JSP的後繼Facelets上工作。 Spring Web Flow有一組Facelets標籤。或者Spring MVC最近推出了一套Facelets標籤? – BalusC