私は JSF 2.2 (またはこれまでに使用したもの) を試すことにしたので、Mojarra の最新のスナップショット ビルドを入手してセットアップしました。これで、prettyphoto を使用するテンプレートができました。JSF 2.1 では問題なく動作しましたが、最新の mojarra ビルドに変更した瞬間、prettyphoto ウィンドウが表示されませんでした。それは私を数時間夢中にさせました(私のPCには2つのglassfishサーバーがあり、1つは最新のmojarraで、もう1つは安定したものです)。最新の mojarra ビルドが<ui:composition>
.
私の例をより明確にするために..私は次のようなものを持っています:
DOCTYPE HTMLといくつかの UI:INSERTS を含むJSFマスターテンプレート
<?xml version='1.0' ?>
<!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:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets">
DOCTYPE構成でマスターテンプレートを実装するJSF通常ページ:
<?xml version='1.0' encoding='UTF-8' ?>
<?xml version='1.0' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:jsf="http://java.sun.com/jsf"
template="./WEB-INF/template/MASTERTEMPLATE.xhtml>
.....<ui:define /> etc etc....
</ui:composition>
この後のテンプレートクライアントがブラウザにレンダリングされると、doctype コンポジションで送信されます.. ui:composition. 以外のすべてを無視するはずだと思っていました.安定した Mojarra ビルドでは、コンポジション DOCTYPE は無視され、次のようになります。 html...
最初はバグかと思いましたが、わざとですか?彼らはあなたにそれを言うべきですが、私はこれで一日中失われました。