1

私はPHP開発者ですが、Javaに移行しています。(現時点ではJavaは非常に新しい)

サーブレットに対してajax呼び出しを行い、(サーブレットで直接作成されたhtmlまたはjsonとは対照的に)別の.jspファイルの出力で応答する方法はありますか?

これは、Zend Frameworkを使用した一般的な方法の例です。これは、可能であればJavaで実行したいことです。

public function myAjaxCallAction(){
    $this->view->someVar = 'whatever';
    $this->view->hello = 'world';
    $output = $this->view->render('someViewScript.phtml'); // the above vars are in this view
    echo $output;
}

繰り返しますが、Javaは非常に新しいので、このタイプの状況に関するアドバイスをいただければ幸いです。

4

3 に答える 3

2

必要な.jspをロードしてみてください。通常、JSPフラグメント(.jspf)を使用します。その内容をロードしたい場合は、次のようにすることができます。

あなたのページ:

... content ...
<div id="container"></div>
... content ...

上記のページのJavascript(jQueryを使用):

$(function(){
    $( "#container" ).load( "pathToYoutJsp/file.jsp", { someVar: "whatever", hello: "world" } );
});

ロードされるJSPは次のよ​​うになります。

... content ...
${param.someVar} foo foo foo ${param.hello}
... content ...
于 2012-08-05T03:13:19.567 に答える
0

はい、私があなたの質問を正しく受け取った場合、あなたがしたいのは、JSPファイルへの単純なAJAXリクエストであり、応答を取得します。次のようにします。

クライアントJavascriptの場合:

var xmlHttp = new XMLHttpRequest(); 
xmlHttp.open( "GET","ajaxreq.jsp?query=John", false ); 
xmlHttp.send(); 
return xmlHttp.responseText;
//returns the response from server. here it is "Hello John"

サーバーajaxreq.jsp:

<% 
..              //import required libraries and other application logic
out.print("Hello "+request.getParameter("query"));
..
%>

お役に立てれば。

于 2012-08-05T12:50:53.090 に答える
0

はい、できます。ディスパッチする前にrequest.setAttributeを使用してから、別のページにディスパッチしてください。

request.setAttribute("someVa", "whatever");

RequestDispatcher requestDispatcher; 

requestDispatcher = request.getRequestDispatcher("/thankYou.jsp");

requestDispatcher.forward(request, response);

サーブレットRequestDispatcherからの次のリンクリダイレクトjspを参照してください

于 2014-05-21T15:41:36.077 に答える