我必須將Facebook社交插件集成到JSF應用程序中。這建議我將fbml命名空間添加到它在響應中呈現的xhtml文件中。Facebook社交插件和JSF
我在XHTML文件:
<!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:fb="http://www.facebook.com/2008/fbml"
xmlns:og="http://ogp.me/ns#">
但fb
和og
命名空間將不會在渲染源,只有XHTML命名空間中顯示。我怎樣才能將這些命名空間寫入響應?
有這個問題:https://stackoverflow.com/questions/5199176/include-facebook-social-plugins-in-a-jsf2-page但它還沒有被回答。
我唯一的想法是製作一個iframe幷包含一個簡單的XHTML文件(不是Facelet,只是純粹的XHTML),但這似乎很髒。
我希望有人有更好的解決方案。
附加信息:我正在使用facelets和seam 2.2。
我假設ResponseWriter.startDocument()
打印Doctype和<html>
元素,是否正確?或者它只是另一個UIComponent
,呈現<html>
元素?如果我可以實現自定義ResponseWriter
並覆蓋startDocument()
並將我的自定義書寫器設置爲默認,那將會很好。
這使我2個問題:
- 我應該覆蓋哪些類,所以我沒有實現的抽象
ResponseWriter
的每一個方法是什麼? - 我該如何告訴我的應用程序使用我的自定義
ResponseWriter
?
或者是否實現了一個自定義組件來呈現<html>
標記作業?我問這個,因爲facelets好像自己渲染了<html>
標籤,似乎沒有辦法改變這個,所以我想出了覆蓋ResponseWriter
的原因。