我必须将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
的原因。