- PR -

ForwardActionからjspが呼ばれた時にindex.jspで定義したscript関数がよばれない

投稿者投稿内容
kn
会議室デビュー日: 2004/04/21
投稿数: 11
投稿日時: 2004-08-17 14:51
題名通りです。

<html:form action="/dispIndex">
<html:submit value="戻る"/>
</html:form>
でindex.jspを呼び出しているのですが、
どうしてもonloadイベントが走ってくれません。


<!-- dispInsert -->
<action path="/dispIndex"
name="InsertForm"
scope="request"
type="study.struts.actions.ForwardAction">
<forward name="success"
contextRelative="true"
path="/jsp/insertResult.jsp"/>
</action>

で、ForwardActionを定義しており、index.jspの抜粋は

<html:html>
<head>
<title>さんぷる</title>
<%-- スクリプトファイルのインクルード --%>
<script language="JavaScript" src="../js/DoubleClickCheck.js"></script>
</head>

<body onload="doInit()">
<center>
<h1>さんぷる</h1>

です。
doInit()はDoubleClickCheck.jsで定義されており、
たとえば、<html:link〜>から呼ばれた時は正常に動作します。
何か分かる方がいらっしゃいましたらご教授お願いします

[ メッセージ編集済み 編集者: kn 編集日時 2004-08-17 14:54 ]

[ メッセージ編集済み 編集者: kn 編集日時 2004-08-17 14:56 ]
やっくる
会議室デビュー日: 2004/07/22
投稿数: 6
投稿日時: 2004-08-17 17:39
> <html:form action="/dispIndex">
> <html:submit value="戻る"/>
> </html:form>
> でindex.jspを呼び出しているのですが、
> どうしてもonloadイベントが走ってくれません。

とありますが、下のconfigの定義だとindex.jspを呼び出さずに
insertResult.jspを呼び出すようになっています。

> <!-- dispInsert -->
> <action path="/dispIndex"
> name="InsertForm"
> scope="request"
> type="study.struts.actions.ForwardAction">
> <forward name="success"
> contextRelative="true"
> path="/jsp/insertResult.jsp"/>
> </action>

index.jspを呼ぶように↑ここを変更すべきなのでは?
kn
会議室デビュー日: 2004/04/21
投稿数: 11
投稿日時: 2004-08-17 17:48
すいません。記述が足りてませんでした。。。

<!-- dispInsert -->
<action path="/dispIndex"
name="InsertForm"
scope="request"
type="study.struts.actions.ForwardAction">
<forward name="success"
contextRelative="true"
path="/jsp/insertResult.jsp"/>
</action>

insertResult.jspは戻るボタンだけをもつjspで抜粋は

<body>
<center>
<h1>挿入結果</h1>
ユーザID:<htmlx:write name="InsertForm" property="id"/><br>
ユーザ名:<htmlx:write name="InsertForm" property="name"/><br>
パスワード:<htmlx:write name="InsertForm" property="passwd"/><br>
<p>
<p>
<html:form action="/dispIndex">
<html:submit value="戻る"/>
</html:form>

となっております。。。

[ メッセージ編集済み 編集者: kn 編集日時 2004-08-17 17:51 ]

[ メッセージ編集済み 編集者: kn 編集日時 2004-08-17 17:53 ]
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-08-17 18:22
ActionServlet から JSP へ転送されているために相対パスが解決できていないのではないでしょうか?
アクセスログをみて DoubleClickCheck.js がどんなパスでリクエストされているか確認してみましょう。

<script language="JavaScript" src="./DoubleClickCheck.js"></script>
でOkかな?
ちょま吉
大ベテラン
会議室デビュー日: 2004/08/04
投稿数: 112
投稿日時: 2004-08-17 21:53
やっくるさんのおっしゃるとおり、このaction定義でindex.jspの記述がないのですが?
どうやってindex.jspを呼ぶのでしょうか?

引用:

knさんの書き込み (2004-08-17 17:48) より:
すいません。記述が足りてませんでした。。。

<!-- dispInsert -->
<action path="/dispIndex"
name="InsertForm"
scope="request"
type="study.struts.actions.ForwardAction">
<forward name="success"
contextRelative="true"
path="/jsp/insertResult.jsp"/>
</action>

insertResult.jspは戻るボタンだけをもつjspで抜粋は

<body>
<center>
<h1>挿入結果</h1>
ユーザID:<htmlx:write name="InsertForm" property="id"/><br>
ユーザ名:<htmlx:write name="InsertForm" property="name"/><br>
パスワード:<htmlx:write name="InsertForm" property="passwd"/><br>
<p>
<p>
<html:form action="/dispIndex">
<html:submit value="戻る"/>
</html:form>

となっております。。。

kn
会議室デビュー日: 2004/04/21
投稿数: 11
投稿日時: 2004-08-18 10:14
全てにおいて記述不足でした、すいません。。。orz
index.jspを呼ぶアクションは

<!-- dispIndex -->
<action path="/dispIndex"
name="SearchForm"
scope="request"
type="study.struts.actions.ForwardAction">
<forward name="success"
contextRelative="true"
path="/jsp/index.jsp"/>
</action>

と定義してます。
SearchFormは検索に使うFormでinsertでもデータは変わらないため
代用しています。

で、insertResule.jspの戻るボタンでindex.jspに戻る場合
<body onload="〜">が呼ばれないのです。

変わりにinsertResule.jspの戻るを
<html:link 〜>とすると正常に<body onload="〜">が動作します。

>インギさん
アクセスログの解析も念のためしてみます。
index.jsp自体は正常に表示されるため問題ないと思っていたのですが。
あ、そういえばJavaScriptをindex.jspに直書きすると正常に動作するのですよね。
外部からのjsファイルの読み込みの問題でしょうか。
少し調査してみます。
今日は仕事お休みなので明日以降になってしまいますが。

>みなさん
わかりにくい質問に対し、レスしてくれてどうもありがとうございます。
kn
会議室デビュー日: 2004/04/21
投稿数: 11
投稿日時: 2004-08-18 10:19
たびたびすいません。
全ての箇所において

study.struts.actions.ForwardAction

となっているところは、

org.apache.strtus.actions.FowardAction

の間違いです……。
山本 裕介
ぬし
会議室デビュー日: 2003/05/22
投稿数: 2415
お住まい・勤務地: 恵比寿
投稿日時: 2004-08-18 10:21
>index.jsp自体は正常に表示されるため問題ないと思っていたのですが。
>あ、そういえばJavaScriptをindex.jspに直書きすると正常に動作するのですよね。
>外部からのjsファイルの読み込みの問題でしょうか。
私の理解では Script タグで src=".." と指定した場合、JavaScript は別途読み込まれますので JSP が表示されていても JavaScript だけ読み込めていない可能性もあるかと存じます。
アクセスログをみると DoubleClickCheck.js に対して 400 が返っているログが確認できそうです。
混乱しているようで大変かと思いますが一つ一つ切り分けてがんばってください。

[ メッセージ編集済み 編集者: インギ 編集日時 2004-08-18 10:22 ]

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