Мне нужно интегрировать социальные плагины Facebook в приложение JSF.Рекомендуется добавить пространство имен fbml в файл xhtml, отображаемый в ответе.
У меня есть в моем файле 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 и шов 2.2.
Я предполагаю, что ResponseWriter.startDocument()
печатает Doctype и элемент <html>
, это правильно?Или это просто еще один UIComponent
, который отображает элемент <html>
?Было бы неплохо, если бы я мог просто реализовать пользовательский ResponseWriter
и переопределить startDocument()
и установить свой собственный писатель по умолчанию.
Это приводит меня к 2 вопросам:
- Какойкласс, который я должен переопределить, чтобы мне не приходилось реализовывать каждый метод абстрактного
ResponseWriter
? - Как мне сказать моему приложению использовать свой пользовательский
ResponseWriter
?
Или реализует пользовательский компонент, который отображает тег <html>
?Я спрашиваю об этом, потому что Facelets, похоже, отображает тег <html>
сам по себе, и, кажется, нет никакого способа изменить это, поэтому я придумал переопределить ResponseWriter
.