0

私はストラットに非常に慣れていません。これが私が達成しようとしていることです。

JSP-1 で記述された JavaScript 関数は、アクション クラスを使用してデータベースからデータを取得する AJAX を起動し、jsp-2 はアクション クラスからのデータを使用し、struts タグを使用して特定の要素を形成し、この HTML データを JavaScript 関数に出力します。 JSP-1。

ここに画像の説明を入力

今、JSP-2を使っているのは、strutsタグを使ってHTMLデータを作るためです。JSP-2 は、決して表示されない JSP-1 の HTML データを形成する関数のように機能します。アクション クラスが JSON オブジェクトを ajax に返す通常の流れは知っていますが、中間の JSP-2 ページを実行する方法がわかりません。

これは、jsp からアクションへ、およびアクションから ajax フローへの私の struts.xml です。

<action name="ajaxAction" class="ActionClass">
            <result name="success" type="json"/>
 </action>

ここでの私の質問は、アクション クラスから JSP-2 に移動してから AJAX に応答する方法です。

4

3 に答える 3

1

jqueryを使用している場合は、次のようにすることができます

$(document).ready(function(){
    var url ="MyAjaxAction.action";
    $("#sectionWhereJSP2WillbeThere").load(url);  
 });

そして、Strutsアクションクラスでは、通常を使用するだけですsuccess(つまり、通常のアクションとして扱います)

于 2012-11-21T11:19:01.753 に答える
0

したがって、dispatcher結果の型を使用しないでjsonください:

<action name="ajaxAction" class="ActionClass">
   <result name="success">JSP-2</result>
</action>
于 2012-11-21T11:17:23.420 に答える
0

JSP-1 について考える必要はありません。これは、Ajax アプリケーションの配信メカニズムに過ぎませんでした。問題は、作成している Ajax リクエストがどのような応答を必要としているかです。Javascript Ajax クライアントは、JSON 応答または HTML フラグメントを必要としていますか?

json が必要な場合、JSP-2 の必要性はわかりません (ただし、jsp を使用して json を作成できますが、struts がそれを行うための json 結果タイプを提供する場合、そうする理由はほとんどありません)。

HTML フラグメントが必要な場合、それを作成する最良の方法は JSP を使用することであり、おそらく jsp-2. この場合、結果のタイプを「dispatcher」に変更する必要があります。これは実際にはデフォルトのタイプです。つまり、指定する必要はありません。

<action name="ajaxAction" class="ActionClass">
            <result name="success">/path/to/jsp-2</result>
 </action>
于 2012-11-21T15:14:13.103 に答える