@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

JSFの画面を別ウィンドウで表示したい

1
投稿者投稿内容
未記入
会議室デビュー日: 2009/02/24
投稿数: 2
投稿日時: 2009-02-24 16:03
JSFを使用して以下のようなことを実現したいです。

1.親画面のボタンをクリック
2.子画面が別ウィンドウで表示される
3.子画面でデータを選択し決定ボタン押下
4.子画面が閉じ、親画面のテキストフィールドに値が表示される

1⇒2 の段階で実装方法がわからず、つまづいています。
javascriptを使用し、別ウィンドウを表示させようと思っているのですが
子画面を表示する際にアクションを呼ぶ必要があり、
どう呼んでよいかわからない状況です。

以下のようにやってみましたが、うまくいきません。
アドバイスを宜しくお願いします。

■javascript
<script language="JavaScript">
<!--
function open() {
window.showModalDialog("/jsp/child.jsp", "","dialogHeight:200px; dialogWidth:400px;");
}
//-->
</script>

■jsp
<h:commandButton type="submit" value="go" action="#{[アクション].action}" onclick="open()"/>
chaguma
会議室デビュー日: 2006/03/10
投稿数: 8
投稿日時: 2009-02-24 16:24
私は以下のようなやり方をしています
残念ながら正解かはわかりません・・・

function open() {
window.showModalDialog("ほげ.jsf", "","dialogHeight:200px; dialogWidth:400px;");
}

<h:commandButton type="button" value="go" onclick="open()"/>

ほげ.jsfで呼び出されるビーンのメソッドは指定できてません。
getほにゃららのメソッド内で表示したいことをやったりしています。。
たます菌
会議室デビュー日: 2009/02/24
投稿数: 3
投稿日時: 2009-02-24 16:41
onclick="return open();"
これではダメ?

submitのonClick内はreturnが必要かと。
未記入
会議室デビュー日: 2009/02/24
投稿数: 2
投稿日時: 2009-02-24 16:54
>chagumaさん
ありがとうございます。
アクション不要の画面はご回答いただいた処理で表示することができましたが、
子画面で表示する内容をアクション内で取得しなければいけないため
404エラーになってしまいました。


>たます菌さん
ありがとうございます。
以下のように記述しましたが、まず、404の別ウィンドウが表示され、
別ウィンドウを閉じるとアクションが動き、本ウィンドウで画面遷移してしまいました。

<h:commandButton type="submit" value="go" action="#{[アクション].action}" onclick="return open()"/>


何か方法はありそうな気がするんですけどね・・
WEBで探しても、それらしい情報がないです・・


[ メッセージ編集済み 編集者: 未記入 編集日時 2009-02-24 17:00 ]

[ メッセージ編集済み 編集者: 未記入 編集日時 2009-02-24 17:48 ]
chaguma
会議室デビュー日: 2006/03/10
投稿数: 8
投稿日時: 2009-02-24 18:27
http://akuneshi.exblog.jp/1622568/
こんなのがありました
このサイト内のリンクは英語でしかも2004年なんですが・・

これまた英語ですが
http://wiki.apache.org/myfaces/JavascriptOpenNewWindow
検討はずれかな?

[ メッセージ編集済み 編集者: chaguma 編集日時 2009-02-24 18:29 ]
rien
会議室デビュー日: 2009/03/10
投稿数: 2
投稿日時: 2009-03-10 20:38
<h:form target="subWindow">

  <%-- oamSetHiddenInput is not defined予防 --%>
  <t:commandLink style="display:none;"/>

  <t:commandButton onclick="window.open('', 'subWindow');" action="#{clazz.method}"/>



[ メッセージ編集済み 編集者: rien 編集日時 2009-03-25 00:59 ]
rien
会議室デビュー日: 2009/03/10
投稿数: 2
投稿日時: 2009-03-10 21:02
<h:form>
  <!--
    sub-window側のJSP

    getterが呼ばれる仕組みを利用します。

    session time-outやbook-markに対応可能です。

    <t:outputText value="#{clazz.init}"/>

    Clazz#getInit()が呼ばれます。
  -->

[ メッセージ編集済み 編集者: rien 編集日時 2009-03-25 01:00 ]
1

スキルアップ/キャリアアップ(JOB@IT)