从JavaScript调用Java代码(Spring boot)

从JavaScript调用Java代码(Spring boot),javascript,java,url,spring-boot,Javascript,Java,Url,Spring Boot,这是我的控制器: @控制器 @请求映射(“/test”) 公共类TestServlet{ @请求映射(“/country/{latitude}-{longitude}”) 公共字符串getCountry(@PathVariable字符串纬度,@PathVariable字符串经度,型号){ //将数据注入JSP model.addAttribute(“纬度”,纬度); addAttribute(“经度”,经度); //返回html 返回“private/private”; }像这样的东西就可以了

这是我的控制器:

@控制器
@请求映射(“/test”)
公共类TestServlet{
@请求映射(“/country/{latitude}-{longitude}”)
公共字符串getCountry(@PathVariable字符串纬度,@PathVariable字符串经度,型号){
//将数据注入JSP
model.addAttribute(“纬度”,纬度);
addAttribute(“经度”,经度);
//返回html
返回“private/private”;

}
像这样的东西就可以了

 $.ajax({
     type : "GET",
     url : "http://<server>:<port>/test/country/<latitudevalue>-<longitudevalue>",
     contentType: "application/json",
     dataType: "json",
     success : function (data, status) {
        ......
     },
     error : function (status) {
        ....
     }
 });
$.ajax({
键入:“获取”,
url:“http://:/test/country/-”,
contentType:“应用程序/json”,
数据类型:“json”,
成功:功能(数据、状态){
......
},
错误:功能(状态){
....
}
});

像这样的东西就可以了

 $.ajax({
     type : "GET",
     url : "http://<server>:<port>/test/country/<latitudevalue>-<longitudevalue>",
     contentType: "application/json",
     dataType: "json",
     success : function (data, status) {
        ......
     },
     error : function (status) {
        ....
     }
 });
$.ajax({
键入:“获取”,
url:“http://:/test/country/-”,
contentType:“应用程序/json”,
数据类型:“json”,
成功:功能(数据、状态){
......
},
错误:功能(状态){
....
}
});
我担心@PathVariable在正确识别以“-”分隔的变量方面存在一些问题。 对于这个任务,我会使用其他标准字符,比如“/”或“&”

我还将在@RequestMapping注释中指定HTTP方法,如下所示:

 @RequestMapping(value = "/country/{latitude}-{longitude}", method = RequestMethod.GET)
js ajax调用类似于:

$.ajax({
 type : "GET",
 contentType: "application/json",
 dataType: "json",
 url : "/test/country/" + lat + "-" + lon,
 success : function (data, status) {
    /*CODE*/
 },
});
我担心@PathVariable在正确识别由“-”分割的变量方面存在一些问题。 对于这个任务,我会使用其他标准字符,比如“/”或“&”

我还将在@RequestMapping注释中指定HTTP方法,如下所示:

 @RequestMapping(value = "/country/{latitude}-{longitude}", method = RequestMethod.GET)
js ajax调用类似于:

$.ajax({
 type : "GET",
 contentType: "application/json",
 dataType: "json",
 url : "/test/country/" + lat + "-" + lon,
 success : function (data, status) {
    /*CODE*/
 },
});

如果您想在JSON中获得结果,那么可以按如下方式更改控制器

@Controller
@RequestMapping("/test")
public class TestServlet {

@ResponseBody
@RequestMapping("/country", method = RequestMethod.GET, produces = "application/json")
public Map<String, String> getCountry(@PathVariable String latitude, @PathVariable 
String longitude){

final Map<String, String> messageObject = new HashMap<>();
messageObject.put("latitude", latitude);
messageObject.put("longitude", longitude);

//return the html
return messageObject;
}
@控制器
@请求映射(“/test”)
公共类TestServlet{
@应答器
@RequestMapping(“/country”,method=RequestMethod.GET,products=“application/json”)
公共地图getCountry(@PathVariable字符串纬度,@PathVariable
字符串经度){
final Map messageObject=new HashMap();
messageObject.put(“纬度”,纬度);
messageObject.put(“经度”,经度);
//返回html
返回消息对象;
}
然后在客户端

$.getJSON("/country", {latitude: <latitude>, longitude: <longitude>}, function(data) { 

        if (data != null) {
          for(key in data){
           var lat = data[latitude];
           var long = data[longitude];
          }
        }
     });
$.getJSON(“/country”,{纬度:,经度:},函数(数据){
如果(数据!=null){
用于(输入数据){
var lat=数据[纬度];
var long=数据[经度];
}
}
});

如果希望以JSON格式获得结果,则可以按如下方式更改控制器:

@Controller
@RequestMapping("/test")
public class TestServlet {

@ResponseBody
@RequestMapping("/country", method = RequestMethod.GET, produces = "application/json")
public Map<String, String> getCountry(@PathVariable String latitude, @PathVariable 
String longitude){

final Map<String, String> messageObject = new HashMap<>();
messageObject.put("latitude", latitude);
messageObject.put("longitude", longitude);

//return the html
return messageObject;
}
@控制器
@请求映射(“/test”)
公共类TestServlet{
@应答器
@RequestMapping(“/country”,method=RequestMethod.GET,products=“application/json”)
公共地图getCountry(@PathVariable字符串纬度,@PathVariable
字符串经度){
final Map messageObject=new HashMap();
messageObject.put(“纬度”,纬度);
messageObject.put(“经度”,经度);
//返回html
返回消息对象;
}
然后在客户端

$.getJSON("/country", {latitude: <latitude>, longitude: <longitude>}, function(data) { 

        if (data != null) {
          for(key in data){
           var lat = data[latitude];
           var long = data[longitude];
          }
        }
     });
$.getJSON(“/country”,{纬度:,经度:},函数(数据){
如果(数据!=null){
用于(输入数据){
var lat=数据[纬度];
var long=数据[经度];
}
}
});

Merci!谢谢Merci!谢谢Merci!谢谢Merci!谢谢Merci!谢谢Merci!谢谢Merci!谢谢