ITエンジニア オン・ザ・ラン

Java、SQL、FLEX…どれも発展途上国。

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

PageTop

JAVA: strutsでpopup( showModalDialog )

showModalDialog(別ウィンドウ)で設定した項目を親画面に反映したい場合

StrutsでshowModalDialogを使いたいときの、一つの方法です。
ちなみに…

単なるポップアップ: ポップアップを開いた状態で親画面を操作できる。

<strong>showModalDialog</strong>: ポップアップを開いた状態では親画面を操作できない。


/////////////////////////////////////////////
//
// 親画面.jsp
//
/////////////////////////////////////////////
<script type="text/javascript">
/**
* ポップアップ(ショーモーダル)を開く詳細設定を行います。
* @param contextPath コンテキストパス
* @return ポップアップ先で設定された項目
*/
function popupDirector(contextPath) {
var nm = document.popupForm.name.value;
var ag = document.popupForm.age.value;
var ge = document.popupForm.gender.value;
var display = "dialogWidth:600px;dialogHeight:500px;center:yes;";
var url = contextPath + "/popupInit.do?name=" + nm + "&age=" + ag + "&gender=" + ge;
var retData = window.showModalDialog(url, window, display);
return retData;
}

/**
* ポップアップを開くように命令します。
* また、設定項目を親画面に代入します。
* @param contextPath コンテキストパス
*/
function popupInit(contextPath) {
// ポップアップを開くよう指示するとともに
// ポップアップ先で設定された項目を受け取る
var retData = popupDirector(contextPath);

//ポップアップ先で設定された項目を親画面に代入
document.popupForm.name.value = retData[0];
document.popupForm.age.value = retData[1];
document.popupForm.gender.value = retData[2];
}

</script>
.
.
.
<html:form action="popInit">

<html:hidden write="true" property="name"/><br>
<html:hidden write="true" property="age"/><br>
<html:hidden write="true" property="gender"/><br>

<input type="button" name=updateMail value="ポップアップ" onclick="popupInit('<%=request.getContextPath()%>')">
</html:form>
.
.
.
/////////////////////////////////////////////
//
// popupInitAction.java
//
/////////////////////////////////////////////

必要なければ何もしなくても良い。


/////////////////////////////////////////////
//
// 子画面.jsp
//
/////////////////////////////////////////////

<script language="JavaScript">
<!--


function windowClose() {
var retData= new Array(3);
retData[0] = document.popupForm.name.value;
retData[1] = document.popupForm.age.value;
retData[2] = document.popupForm.gender.value;

parent.returnValue = retData;
parent.window.close();
}
-->
</script>
.
.
.
<html:form action="popSubmit">

<html:text property="name"/><br>
<html:text property="age"/><br>
<html:text property="gender"/><br>

<input type="button" value="閉じる" onclick="windowClose()" />

</html:form>
.
.
.

PageTop

コメント


管理者にだけ表示を許可する