1

我是一名 PHP 开发人员,但正在过渡到 Java。(此时对 Java 非常陌生)

有没有办法对 Servlet 进行 ajax 调用,并以单独的 .jsp 文件的输出进行响应(而不是直接在 Servlet 中创建的 html 或 json)?

这是一个使用 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 非常陌生,任何与这种情况有关的建议将不胜感激!

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);

请参阅以下链接redirect jsp from servlet RequestDispatcher

于 2014-05-21T15:41:36.077 回答