0

Scriptlet で JavaScript 変数を使用できるようにする方法について、どうしても提案が必要です。私は、スクリプトレットコードがサーバー上で実行されるクライアント側でJavaScriptが実行されることを知っています。しかし、JavaScript変数をスクリプトレットで使用できるようにする方法があると思います。以下は私のコードです。

Javascript の楽しみ

function showDirStructure(repoId, repoName){


        <% 
        String sr = repoId;
        if(sr!=null){
        JSONObject obj = getDirStructure.createJsonObject(request.getParameter("repoId")); 

         %>

上記の JavaScript 関数 (showDirStructure) は 2 つのパラメーターを取ります。これらのパラメーターを Scriplet タグで使用して createJsonObject (サーバー側メソッド) を呼び出す必要があります。

4

4 に答える 4

1

スクリプトレットは、Web ページに関するデータがサーバーからクライアントに送信される前に実行されます。やりたいことが何であれ、ポストバックをサーバーに送信する必要があります(フォームまたはajax呼び出しを使用)。私は通常 jQuery を使用するので、回答ではそれを使用しますが、ネイティブ JS コードを使用するように自由に変更してください。まず、サーバー上に createJsonObject というページを作成し、クライアントから $.ajax (type: "POST") で呼び出し、2 つの引数をオブジェクト {repoId: repoId, repoName: repoName} として渡します。サーバーでは、そのページに JSP を配置し、ページの読み込み時に引数を読み取り、関数を実行し、データを含むオブジェクトをクライアントに返します。.done() では、そのデータで何かを行います (フォームに表示し、JS 変数に保存します...)。お役に立てれば。

于 2013-08-02T07:54:25.107 に答える
0

JSON 文字列を解析することが目的の場合は、クライアント側でも実行できます。jQuery.parseJSON ( http://api.jquery.com/jQuery.parseJSON/ ) または eval (eval は使用できません)おすすめだけど)

于 2013-08-02T07:53:39.927 に答える
0
javascript variable available in scriptlet

番号。

内部javascriptでは、呼び出すことはできませんjsp。スクリプトレット内のコードはサーバー側で実行されます

新しいコンテンツをサーバー (HTML フォーム/AJAX) に要求するか、ページの読み込み中にクライアント側で Json オブジェクトを維持して後で使用する必要があります。

于 2013-08-02T07:42:46.920 に答える