2012-08-05 55 views
1

我是一名PHP開發人員,但正在過渡到Java。 (很新到Java在這一點上)如何在Java中將視圖文件輸出爲ajax響應?

有沒有一種方法,使一個AJAX調用一個Servlet,並配有獨立的.jsp文件的輸出響應(而不是HTML或JSON在Servlet中直接創建) ?

這裏是什麼是常見的做法爲例瓦特/ Zend框架,這是我想用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中,任何意見屬於這種類型的情況將不勝感激!

+0

一個JSP文件基本上是一個HTML模板。您不需要在JSP中放置整個「 ......」塊。只是它的一部分,像'

...
'也是絕對好的。 – BalusC 2012-08-05 04:00:20

回答

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 ... 
0

是的,如果我正確地得到您的問題,那麼你想要做的是一個si將一個AJAX請求複製到一個JSP文件並獲得獎勵。做到這一點,如下所示:

在客戶端的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")); 
.. 
%> 

希望這有助於。

+0

沒有瀏覽器檢查的Ajax? JSP中的Scriptlet? – davidbuzatto 2012-08-05 15:52:03

+0

@davidbuzatto不是一個完美的代碼。只是給一些骨架..現在會添加。 – 2012-08-05 16:09:11

+0

你不明白我說的。我說過因爲你的代碼有不好的做法。你需要通過一個庫來使用Ajax,除非你自己做,否則它將執行瀏覽檢查。使用腳本並不是一件好事。 – davidbuzatto 2012-08-05 16:14:50

0

是的,你可以通過出廠前使用了request.setAttribute,然後派遣到您的單獨頁面

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

RequestDispatcher requestDispatcher; 

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

requestDispatcher.forward(request, response); 

請參閱以下鏈接redirect jsp from servlet RequestDispatcher

相關問題