3

requestdispatcher() を使用して jsp ページの 1 つに転送するサーブレットがあります。

request.getRequestDispatcher("/WEB-INF/view/mypage.jsp").forward(
                    request, response);

ターゲットmypage.jspには、いくつかの表示/非表示を行う必要があるいくつかのjqueryの利点がありますが、何らかの理由で、サーブレットから転送された後にjspが表示されたときにjqueryがトリガーされませんが、経由でページに直接アクセスすると機能しますアドレスバー(直接アクセスするためにweb-infの外にページを配置しました)。

単純な<body onload="alert('Testing')">ものでも機能しません。また、jsp でHTML5 と jquerymobileを使用しています。

私の知識のギャップを埋めるための返信は素晴らしいでしょう. ありがとう

以下は私のjspページです:

<!DOCTYPE html>
<html>
<head>
<title>My App</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css" />
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
</head>
<body onload="alert('Even this is not popping up')">
-- Stuff--
</body>
</html>
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js"></script>
</head>
<body onload="alert('Even this is not popping up')">
-- Stuff--
</body>
</html>
4

5 に答える 5

1

問題は、mypage.jsp へのアクセス方法にある可能性があります。/WEB-INF フォルダー内にあるため、ブラウザーから直接アクセスすることはできません。/WEB-INF フォルダー内にある場合、アドレスバーからページに直接アクセスすることはできないと思います。

/WEB-INF の外部からアクセスしていて動作するが、サーブレットが要求を転送した後に動作しない場合、最も可能性の高い理由は、ブラウザとサーバーに送信された後に JSP ページが何かをロードしようとすることです。提供を拒否します - おそらくそのリソースは /WEB/INF 内にもあります。このリンクも役立つ場合があります。

于 2012-05-10T00:42:35.823 に答える
0

直接アクセスと間接アクセスの場合、ページにアクセスしてソースを表示すると問題が見つかると思います。ファイル差分ツールを使用して、2 つの出力を比較します。いずれかのバージョンに JavaScript が含まれていないか、間接的にアクセスする場合の jquery.js ライブラリへの相対パスが正しくない可能性があります。

于 2012-05-09T21:17:52.463 に答える
0

RequestDispatcher は、インクルードの動作と同様に動作するリダイレクトであるため、ページが提供されている可能性がありますが、静的ファイルはフロントエンドによって要求されるため、アクセスできません。

JS ファイルを WEB-INF、css、画像からも移動します。

于 2012-05-10T11:36:21.063 に答える
0

明らかに、jquerymobile の ajax ナビゲーション モデルが原因です。

http://jquerymobile.com/test/docs/pages/page-scripting.html

于 2012-06-02T19:55:39.947 に答える