Ajax请求控制器

Mar*_*sse 3 jquery playframework

我是Play的新手,用AJAX尝试一些非常简单的东西.现在我只想将一些数据发送到我的控制器并发回一些东西.我不知道如何在Play中实现这一点.

我以前用来发送数据

$.get(url, {data:'input'), function() { do something });
Run Code Online (Sandbox Code Playgroud)

到/ url找到的标准servlet.在servlet中我有一个简单的

out.println("html output")
Run Code Online (Sandbox Code Playgroud)

如果我想在我的html文件中打印一些东西.我希望你明白这一点.

在Play中我在我的控制器中有一个功能(这是废话,只是一个测试...)

public static void doIt(String input) {
    String out = input+"_foo";
    render(out);
}
Run Code Online (Sandbox Code Playgroud)

我尝试用这样的JQuery/AJAX调用这个函数:

$(document).ready(function() {
      // when I click a button ...
      $("#send").click(function(){
            var url = #{jsAction @doIt(':input') /}     
            $.get(url({input: 'x'}), function() {
                ...
            });
      });
});
Run Code Online (Sandbox Code Playgroud)

这是从教程中获取的,不起作用.有人可以给我一个想法如何编写控制器和JS发送一些随机字符串到我的控制器并返回一些东西.

干杯

was*_*tim 5

尝试renderText()而不是render():

public static void doIt(String input) {
    String out = input + "_foo";
    renderText(out);
}
Run Code Online (Sandbox Code Playgroud)

如果您的视图(编写脚本的地方)不属于YourController,请尝试显式定义您使用的控制器:

$(document).ready(function() {
  // when I click a button ...
  $("#send").click(function(){
        var url = #{jsAction @YourController.doIt(':input') /}     
        $.get(url({input: 'x'}), function() {
            ...
        });
  });
Run Code Online (Sandbox Code Playgroud)

});

这个对我有用.重要的是:这只适用于视图文件而不是单独的js