質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

PrimeFaces

PrimeFacesは、トルコのソフトウェア会社Prime Teknolojiが提供する、 JSFリッチユーザーインターフェースコンポーネントです。 Apache License V2ライセンスのオープンソースソフトウェアです。

Q&A

解決済

2回答

4668閲覧

PrimeFacesのDialogFrameworkが表示されない

yoshi7

総合スコア48

JSF

JSF (JavaServer Faces)とは、JavaベースのWebアプリケーションフレームワークの一つです。

PrimeFaces

PrimeFacesは、トルコのソフトウェア会社Prime Teknolojiが提供する、 JSFリッチユーザーインターフェースコンポーネントです。 Apache License V2ライセンスのオープンソースソフトウェアです。

0グッド

0クリップ

投稿2017/02/11 06:27

JSFにて、PrimeFacesのDialogFrameworkを使ってモーダルダイアログを表示したいと思っています。
実装が済んだのでダイアログ画面を表示させたいのですが表示されません。
faces-config.xmlにlistener3つの設定もしています。
ダイアログ側のManagedBeanが動作していることも確認しています。

何が原因でダイアログが表示しないのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

BlueMoon

2017/02/11 09:15

ソースコードなど情報開示は可能でしょうか。原因が特定できるかは判りません。
BlueMoon

2017/02/11 09:19

ダイアログ側のManagedBeanの動作確認方法に間違いが無いか見直された方が良いと思います。他の画面もしくは他のManagedBeanから呼ばれていることはないでしょうか。
yoshi7

2017/02/11 09:39

すいません。ソースの提示は難しいです。
guest

回答2

0

自己解決

ダイアログ画面を呼び出す契機をp:commandLinkにしていたのですが、
p:commandButtonにしたら表示されました。
ただ、p:commandLinkでもダイアログ表示できるみたいですので、
cssかjsで衝突が起きていたんだと思います。

尚、p:commandButtonだと画面レイアウトの要求に応えられないので、
p:commandButtonは非表示にして、
p:commandLinkからp:commandButtonを起動するようにしました。

投稿2017/02/13 10:59

yoshi7

総合スコア48

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

原因は特定出来ませんが、ご参考までに自分がまとめた方法を載せておきます。

リンク内容

JSF,PrimeFaceともタグからJavaScriptを自動生成するフレームワークです。双方ともユーザが記述したJSやCSSとの衝突まで想定されたデザインとはなっていません(インポートするタグなどは存在しますが)。また、一般的にJQueryなどJSライブラリとの併用は非推奨のようです。
なのでタグが自動生成したJSと衝突しないよう、JSやCSSは慎重に記述する必要があると思います。(自分であれば併用は避けます。)

投稿2017/02/11 09:24

編集2017/02/11 11:01
BlueMoon

総合スコア1339

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoshi7

2017/02/11 09:39

ダイアログ側の処理は正しいことが判明しました。 試しにcssの一部を解除してみたら下の方にダイアログ用の画面が表示されました。 PrimefacesのDialogFrameworkは、 指定したxhtmlをiframe内に表示して、 それをダイアログとして表示する機能みたいです。 問題はなぜダイアログとして表示されないかです。 設定に誤りがあるのかcssかjsが競合しているのかですが・・・。
BlueMoon

2017/02/11 11:02

推測ですがJSに原因が有るのではないでしょうか。回答追記しました。
yoshi7

2017/02/13 01:55

全てのCSSとJSを外してみましたが、事象は改善しませんでした。。。
BlueMoon

2017/02/13 01:58

JavaScriptがブラウザにキャッシュされている可能性は無いでしょうか。強制リロード(ChromeならCtrl+リロード)してみてはどうでしょうか。
yoshi7

2017/02/13 04:44

念のためキャッシュをクリアしてみましたが、変化はありませんでした。 ちょっとお手上げかも。
yoshi7

2017/02/13 06:24

呼び出し元をp:commandLinkにしていたのですが、p:commandButtonにしたら表示されました。 ただ、BlueMoonさんがまとめたサイトの処理だとp:commandLinkでもダイアログ表示されたので、 一概にp:commandLinkがダメってことでもないように思えます。 (×ボタンが表示されなかったり等、若干表示が変になりましたが)
yoshi7

2017/02/13 06:25

なんとかp:commandLinkで表示したい。。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問