将JavaScript连接到Java

问题描述:

我在网页上运行JavaScript并运行Java Therad。所有这些都在Spring-MVC框架中。我的想法是,我在jsp网站的JavaScript代码。控制器使游戏therad极限在java中。但我需要将数据发送到我的游戏线程。所以我想使用控制器。 所以我想从JavaScript脚本到站点调用控制器的更新数据,并从它得到responde。将JavaScript连接到Java

所以我觉得要输入这样的代码在我的网站上的JavaScript代码JSON数据发送到controller.Example代码,看看的想法:

$("#btnPostGlEntry").click(function() { 
    var glEntries = '{"glEntries":[{"generalLedgerId":"1"},{"accountId":"4"},{"amount":"344.44"},{"description":"Test Entry"},{"debit":"Yes"}]}'; 
    $.ajax({ 
     type: "POST", 
     contentType: "application/json", 
     dataType: "json", 
     url: contextPath + "/generalLedger/journalEntries/form", 
     data : JSON.stringify(glEntries), 
     success: function(data) { 
      alert("Success!!!"); 
     }, 
     error: function (jqXHR, textStatus, errorThrown) { 
      alert(jqXHR + " : " + textStatus + " : " + errorThrown); 
     } 
    }); 
}); 

JSON - Spring MVC : How to post json data to spring MVC controller

var PersonText = '["firstname":"John", "lastname":"Someone"]'; 
$.ajax({ 
type : 'POST', 
url : "/addnewperson.do", 
data : {'personModel' : personText}, 
datatype : 'json', 
success : function(data) { 
    var obj = jQuery.parseJSON(data); 
} 
}); 

How to call Spring MVC from Javascript?

所以控制器需要一些薄K类似于这样:

import org.springframework.stereotype.Controller; 
import org.springframework.ui.Model; 
import org.springframework.web.bind.annotation.*; 
@Controller 
public class TestController { 
    @RequestMapping(value="/test.htm") 
    public @ResponseBody Integer add(@RequestParam(value="inputNumber1", required=true) Integer inputNumber1, 
      Model model) { 
     System.out.println(inputNumber1); 
     return inputNumber1; 
    } 
} 

Unable to send data from controller to javascript

所以,我有几个问题。 首先。 Javascript是一个游戏代码(浏览器中的图形显示器),所有的时间都在工作。我想调用控制器并将数据传输给它。并从控制器(物理引擎)接收数据。所以我不想从控制器操作中重新加载页面。其次。在这种情况下由控制器进行通信是好主意吗?

+0

你需要访问数据库,使AJAX调用控制器动作是一个办法做到这一点。拨打电话和处理在javascript线上的数据,不会造成页面重新加载。 请删除此问题。 – 2013-05-09 21:47:51

使用它可以在客户端和控制器之间传输数据而无需重新加载页面。即在您的Controller中使用AJAX和@ResponseBody标记。

或者,您可以完全绕过控制器,直接使用定义的远程方法(例如在服务层中)直接使用DWR传输数据(Direct Web Remoting,这对于使用AJAX的直接传输很好,但它可以绕过MVC框架。

http://directwebremoting.org/dwr/index.html